Introdução ao Django¶
Roteiro para Desenvolvimento de Aplicação Web Django com SQLite no VS Code
Pré-requisitos¶
- Visual Studio Code instalado
- Python instalado (versão 3.8 ou superior)
- Extensão Python para VS Code (recomendado)
1: Configurar Ambiente Virtual¶
- Abra o terminal no VS Code (
Ctrl+ou Terminal > Novo Terminal) - Navegue até a pasta onde deseja criar o projeto
- Crie o ambiente virtual:
ou
- Ative o ambiente virtual:
-
Windows:
-
Linux/MacOS:
-
Verifique que o ambiente está ativo (deve aparecer
(venv)no início da linha do terminal)
2: Instalar Django e Dependências¶
- Com o ambiente virtual ativo, instale o Django:
3: Criar Projeto Django¶
- Crie o projeto Django:
(O ponto no final cria o projeto no diretório atual)
- Verifique a estrutura criada:
4: Configurar o Banco de Dados SQLite¶
- O Django já vem configurado para usar SQLite por padrão (verifique em
project/settings.py):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
- Execute as migrações iniciais:
5: Criar uma Aplicação Django¶
- Crie uma nova aplicação:
- Adicione a aplicação ao
INSTALLED_APPSemproject/settings.py:
6: Criar Modelos e Migrações¶
- Defina um modelo em
app/models.py:
from django.db import models
class Produto(models.Model):
nome = models.CharField(max_length=100)
preco = models.DecimalField(max_digits=6, decimal_places=2)
descricao = models.TextField()
disponivel = models.BooleanField(default=True)
def __str__(self):
return self.nome
- Crie e aplique as migrações:
7: Configurar o Painel de Administração¶
- Crie um superusuário:
- Registre o modelo no admin (
app/admin.py):
8: Executar o Servidor de Desenvolvimento¶
- Inicie o servidor:
-
Acesse no navegador:
-
http://localhost:8000/ (página inicial)
- http://localhost:8000/admin/ (painel admin)
Introdução ao Django REST¶
Uma extensão do aplicativo Django inicial para incluir uma API RESTful usando Django REST Framework, mantendo a funcionalidade existente e adicionando endpoints API.
1. Instalação e Configuração Inicial¶
Primeiro, vamos instalar e configurar o DRF:
Adicione ao INSTALLED_APPS em project/settings.py:
2. Criação dos Serializers¶
Crie um arquivo serializers.py na aplicação app:
# app/serializers.py
from rest_framework import serializers
from app.models import Produto
class ProdutoSerializer(serializers.ModelSerializer):
class Meta:
model = Produto
fields = ['id', 'nome', 'preco', 'descricao', 'disponivel']
read_only_fields = ['id']
3. Criação das Viewsets e API Views¶
Atualize ou crie um arquivo api.py na aplicação:
# app/api.py
from rest_framework import viewsets, generics
from rest_framework.response import Response
from rest_framework.decorators import action
from app.models import Produto
from app.serializers import ProdutoSerializer
class ProdutoViewSet(viewsets.ModelViewSet):
queryset = Produto.objects.all()
serializer_class = ProdutoSerializer
4. Configuração das URLs da API¶
Crie um arquivo api_urls.py na aplicação:
# app/api_urls.py
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from app.api import ProdutoViewSet
router = DefaultRouter()
router.register(r'produtos', ProdutoViewSet, basename='produto')
urlpatterns = [
path('', include(router.urls)),
]
Atualize o urls.py principal do projeto:
# project/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('app.urls')), # URLs tradicionais
path('api/', include('app.api_urls')), # URLs da API
]
5. Testando a API¶
Agora você pode testar os endpoints da API:
- Listar todos os produtos:
GET /api/produtos/ - Criar novo produto:
POST /api/produtos/ - Detalhes de um produto:
GET /api/produtos/1/ - Atualizar produto:
PUT /api/produtos/1/ - Produtos disponíveis:
GET /api/produtos/disponiveis/ - Produtos baratos:
GET /api/produtos/baratos/ - Documentação Swagger:
GET /swagger/ - Documentação ReDoc:
GET /redoc/
Esta extensão transforma seu aplicativo Django em uma API RESTful poderosa enquanto mantém a funcionalidade web tradicional. Você agora pode:
- Consumir a API com frontends modernos (React, Vue, Angular)
- Oferecer serviços para aplicativos móveis
- Integrar com outros sistemas via API
- Manter uma arquitetura escalável e bem organizada