Noções Básicas de Django
10 exemplos para você começar com Django 5.2 - 7 básicos e 3 intermediários.
Pré-requisitos
uv pip install "django>=5.2"
django-admin startproject config .
python manage.py migrate- Django 5.2 tem como alvo Python 3.14.
- Use
python manage.py runserverpara desenvolvimento local.
Exemplos Básicos
1. Layout de Projeto e App
Configurações, URLs e um módulo de app.
# config/urls.py
from django.contrib import admin
from django.urls import path
from hello import views
urlpatterns = [
path("admin/", admin.site.urls),
path("", views.home),
]- Projetos contêm configurações; apps contêm funcionalidades.
- Conecte views no
urls.pyraiz. - Execute migrações antes de servir modelos de dados.
Relacionado: Modelos e o ORM - modelos de banco de dados
2. View Baseada em Função
Retorne respostas HTTP de chamáveis Python.
from django.http import JsonResponse
def home(request):
return JsonResponse({"message": "Hello, Django"})- Views recebem
requestprimeiro. JsonResponsepara APIs simples.- Views baseadas em classe escalam melhor com mixins.
3. Padrões de URL com Parâmetros
Capture segmentos de caminho.
from django.urls import path
from . import views
urlpatterns = [path("users/<int:user_id>/", views.user_detail)]- Conversores validam tipos de segmento.
- Nomes permitem buscas reversas.
- Barras finais são convencionais.
4. Módulo de Configurações
Configure apps instalados e banco de dados.
# config/settings.py trecho
INSTALLED_APPS = ["django.contrib.admin", "hello"]
DATABASES = {"default": {"ENGINE": "django.db.backends.sqlite3", "NAME": "db.sqlite3"}}- Mantenha segredos em variáveis de ambiente.
- Divida configurações por ambiente em projetos maduros.
- SQLite é suficiente apenas para desenvolvimento local.
5. Site de Administração
Interface de usuário CRUD integrada para modelos.
from django.contrib import admin
from .models import Item
admin.site.register(Item)- Registre modelos em
admin.site. - Personalize exibições de lista em
ModelAdmin. - Proteja o admin com autenticação forte.
Relacionado: O Admin - personalização
6. Templates
HTML renderizado no servidor com a linguagem de template do Django.
from django.shortcuts import render
def home(request):
return render(request, "home.html", {"title": "Django"})- Templates ficam em
templates/. - O dicionário de contexto passa variáveis.
- Use herança de template para layouts.
Relacionado: Templates e Formulários - formulários
7. Comandos de Gerenciamento
Tarefas CLI via manage.py.
from django.core.management.base import BaseCommand
class Command(BaseCommand):
help = "Comando de demonstração"
def handle(self, *args, **options):
self.stdout.write("ok")- Coloque comandos em
management/commands/. - Use para manutenção compatível com cron.
- Mantenha comandos idempotentes.
Exemplos Intermediários
8. Gancho de Middleware
Processe requisições globalmente.
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
]- A ordem importa para sessões e CSRF.
- Adicione middleware personalizado com moderação.
- Prefira decoradores de view para preocupações localizadas.
Relacionado: Cache e Desempenho - middleware de cache
9. AppConfig
Inicialização explícita de app.
from django.apps import AppConfig
class HelloConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "hello"- Use o padrão
default_app_configviaAppConfig. - Execute
ready()para sinais com cuidado. BigAutoFieldé o padrão para PKs.
10. View de API JSON
Retorne dados estruturados sem DRF.
from django.http import JsonResponse
from django.views.decorators.http import require_GET
@require_GET
def health(request):
return JsonResponse({"status": "ok"})- Decoradores de método HTTP impõem verbos.
- DRF adiciona serializadores e autenticação.
- Mantenha views JSON enxutas.
Relacionado: Django REST Framework - viewsets
Versões da Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, e uv 0.6+.