Pular para o conteúdo
Voltar às Trilhas Intermediário
Django 6 do Zero: de APIs REST ao Primeiro Produto Digital
🎯

Django 6 do Zero: de APIs REST ao Primeiro Produto Digital

Do Módulo 0 ao Lançamento Comercial: Arquitetura MTV, ORM Avançado, PostgreSQL, DRF, OpenAPI, Async ASGI, Redis, Mocks/pytest, Docker, Deploy VPS, Webhooks e Lançamento de Produto Digital.

Capítulos 28
Progresso 0/53 aulas
Concluído 0%
🛠️
CAPÍTULO 1

Módulo 0 — Preparação e Diagnóstico

1 aulas

Python 3.12+, Terminal, Git, venv, pyproject.toml, Env, PostgreSQL e HTTP/JSON.

🧱
CAPÍTULO 2

Módulo 1 — Fundamentos do Django

2 aulas

Arquitetura MTV, Projeto vs App, Ciclo Req/Res, django-admin e manage.py.

🔒

1.1 Arquitetura MTV & Anatomia do Projeto

O Django adota a arquitetura MTV: Model gerencia os dados, Template gerencia a apresentação e View engloba a lógica de negócio.

Bloqueada
🔒

1.2 Projeto: Primeira Aplicação Django

Crie e registre a aplicação no INSTALLED_APPS de settings.py executando python manage.py startapp core.

Bloqueada
🌐
CAPÍTULO 3

Módulo 2 — URLs, Views e Respostas

2 aulas

URLconf, Path Converters, Namespaces, FBVs vs CBVs, JsonResponse e Middlewares.

🔒

2.1 Routing & JsonResponse em Views

Defina rotas tipadas como path("pedidos/<int:id>/", view) garantindo conversão automática de parâmetros.

Bloqueada
🔒

2.2 Projeto: Catálogo Simples com Páginas e Endpoints JSON

Construa views que respondem HTML renderizado para navegação web e JsonResponse para integração com scripts.

Bloqueada
🎨
CAPÍTULO 4

Módulo 3 — Templates e Frontend Server-Side

2 aulas

DTL, Herança, Includes, Static Files, CSRF, Mensagens e Paginação.

🔒

3.1 Herança de Templates DTL & Proteção CSRF

Crie layout base com blocos substituíveis ({% block content %}) e obrigue a inclusão da tag CSRF em todos os formulários POST.

Bloqueada
🔒

3.2 Projeto: Interface Web do Catálogo

Monte as páginas do catálogo com paginação por Django Paginator e exibição de mensagens com django.contrib.messages.

Bloqueada
🗄️
CAPÍTULO 5

Módulo 4 — Models e ORM

2 aulas

Fields, Relacionamentos (FK, O2O, M2M), QuerySets, Q & F objetos e Agregações.

🔒

4.1 Consultas Avançadas com Q, F & Agregações

F() permite referenciar colunas do banco na própria query sem carregar em memória (ex: F("estoque") - 1). Q() habilita lógica OR/AND complexa.

Bloqueada
🔒

4.2 Projeto: Modelagem de Clientes, Produtos e Pedidos

Declare as classes Cliente, Produto e Pedido com validações de integridade e métodos de domínio no model.

Bloqueada
🔄
CAPÍTULO 6

Módulo 5 — Migrations e Evolução do Banco

2 aulas

Schema & Data Migrations, RunPython, Dependências, Rollbacks e Zero-Downtime.

🔒

5.1 Migrações de Dados com RunPython

Ao remover ou alterar colunas com dados reais, insira uma migração customizada com RunPython para mover a informação antes do RemoveField.

Bloqueada
🔒

5.2 Projeto: Evolução Segura do Modelo de Pedidos

Crie migrações reversíveis testando a aplicação dos comandos makemigrations e migrate antes de enviar ao repositório.

Bloqueada
CAPÍTULO 7

Módulo 6 — PostgreSQL e Transações

2 aulas

transaction.atomic, select_for_update, N+1 Queries, select_related e prefetch_related.

🔒

6.1 Otimização ORM (select_related) & Trava de Linha (select_for_update)

select_related realiza JOIN em ForeignKeys O(1). select_for_update trava as linhas no PostgreSQL até o fim de transaction.atomic().

Bloqueada
🔒

6.2 Projeto: Reserva de Estoque Protegida contra Concorrência

Implemente a função de reserva utilizando transaction.atomic e select_for_update para impdir venda duplicada.

Bloqueada
📋
CAPÍTULO 8

Módulo 7 — Django Admin Profissional

2 aulas

ModelAdmin, Search, Filters, Fieldsets, Inlines, Admin Actions e Permissões.

🔒

7.1 Customização de ModelAdmin & Ações em Lote

Configure search_fields, list_filter, TabularInline e actions customizadas para operações em massa no Django Admin.

Bloqueada
🔒

7.2 Projeto: Painel Operacional de Pedidos

Organize a exibição do modelo de Pedidos com status coloridos, inlines de itens e permissões restritas aos operadores.

Bloqueada
📝
CAPÍTULO 9

Módulo 8 — Formulários e Validação

2 aulas

Form, ModelForm, clean(), Formsets, Uploads de Imagens e Prevenção de Mass Assignment.

🔒

8.1 Validação de Domínio no método clean()

Sobrescreva o método clean() do ModelForm para validar regras de negócio que dependem da combinação de múltiplos campos.

Bloqueada
🔒

8.2 Projeto: Cadastro Seguro de Produtos e Demandas

Implemente formulário de upload de imagens limitando extensão e tamanho com reprocessamento via Pillow em otimizar_imagem().

Bloqueada
🔐
CAPÍTULO 10

Módulo 9 — Usuários, Autenticação e Autorização

2 aulas

Custom User Model, Passwords, Sessões, Groups, Permissões, RBAC e Ownership.

🔒

9.1 Custom User Model (PerfilUsuario) & RBAC

Sempre estenda AbstractUser na criação do projeto antes das migrações iniciais para permitir customizações sem quebrar o banco.

Bloqueada
🔒

9.2 Projeto: Papéis de Cliente, Operador e Administrador

Implemente verificações de permissão garantindo que cada cliente só acesse seus próprios pedidos no sistema.

Bloqueada
📐
CAPÍTULO 11

Módulo 10 — Fundamentos de APIs RESTful

2 aulas

Recursos, Endpoints, Verbos HTTP, Status Codes, Idempotência e JSON.

🔒

10.1 Desenho de Contratos RESTful & Semântica

Mapeie URIs no plural (/api/v1/pedidos/) utilizando verbos HTTP adequados e respostas de erro estruturadas.

Bloqueada
🔒

10.2 Projeto: Desenhar o Contrato da API de Pedidos

Especifique contratos JSON de pedidos cobrindo criação (201), leitura (200), alteração (200) e exclusão (204).

Bloqueada
CAPÍTULO 12

Módulo 11 — Django REST Framework (DRF)

2 aulas

Serializers, ModelSerializer, APIView, Generic Views, ViewSets e Routers.

🔒

11.1 ModelSerializer, ViewSets & Routers

Combine ModelViewSet e DefaultRouter para expor endpoints CRUD completos com validação automática via Serializer.

Bloqueada
🔒

11.2 Projeto: CRUD REST de Produtos e Pedidos

Desenvolva a suíte de ViewSets e Serializers para catálogo e gerenciamento de pedidos com suporte a Browsable API.

Bloqueada
📐
CAPÍTULO 13

Módulo 12 — Design Profissional da API

2 aulas

Serializers de Entrada/Saída, DTOs, Paginação Cursor, Idempotency e Versionamento.

🔒

12.1 Paginação por Cursor & Idempotency Keys

Utilize serializers distintos para leitura (detalhado) e escrita (sanitizado), adicionando paginação por cursor em listagens massivas.

Bloqueada
🔒

12.2 Projeto: API Pública Versionada em /api/v1/

Estruture os URLs sob a versão /api/v1/ garantindo evolução sem quebrar clientes legados.

Bloqueada
🛡️
CAPÍTULO 14

Módulo 13 — Segurança de APIs (OWASP Top 10)

2 aulas

OWASP API Security, BOLA, Permissões no DRF, Rate Limiting e CSRF/CORS.

🔒

13.1 Prevenção contra BOLA no DRF (get_queryset)

Sobrescreva get_queryset() no ViewSet para limitar os resultados apenas aos registros pertencentes ao request.user autenticado.

Bloqueada
🔒

13.2 Projeto: Threat Model e Hardening da API

Aplique middlewares de rate-limiting (django-ratelimit), suporte CORS restrito e verificação rigorosa de objetos.

Bloqueada
📄
CAPÍTULO 15

Módulo 14 — Documentação OpenAPI

2 aulas

OpenAPI 3, drf-spectacular, Swagger UI, ReDoc e Schemas de Autenticação.

🔒

14.1 Gerando OpenAPI com drf-spectacular

Utilize drf-spectacular para gerar automaticamente a especificação OpenAPI 3.0 refletindo os tipos dos Serializers e ViewSets.

Bloqueada
🔒

14.2 Projeto: Documentação Interativa da API (Swagger/ReDoc)

Exponha o painel Swagger UI com suporte interativo a testes de endpoints e esquemas de autenticação.

Bloqueada
🏗️
CAPÍTULO 16

Módulo 15 — Arquitetura Modular (Monólito Modular)

2 aulas

Services, Repositories, Domain, Dependency Inversion, Signals e Clean Architecture.

🔒

15.1 Desacoplando Regras de Negócio em Services

Isole regras complexas de negócio em módulos de serviço (services.py) deixando as Views focadas apenas no protocolo HTTP.

Bloqueada
🔒

15.2 Projeto: Refatoração por Módulos de Negócio (src/orders/domain)

Organize a aplicação Django em pacotes orientados ao domínio (api, application, domain, models, tests).

Bloqueada
CAPÍTULO 17

Módulo 16 — Assincronismo no Django 6

2 aulas

WSGI vs ASGI, Async Views, Async ORM, sync_to_async e Concorrência.

🔒

16.1 Async Views, ASGI & database_sync_to_async

Escreva async def views para chamadas HTTP I/O concorrentes utilizando database_sync_to_async para consultas ORM seguras.

Bloqueada
🔒

16.2 Projeto: Integração Concorrente com Serviços Externos

Desenvolva view assíncrona que consome múltiplas APIs de frete em paralelo sob protocolo ASGI.

Bloqueada
📬
CAPÍTULO 18

Módulo 17 — Tarefas em Background

2 aulas

Workers, Celery/Redis, Retries, Outbox Pattern e Management Commands.

🔒

17.1 Custom Management Commands & Celery Workers

Crie comandos python manage.py customizados e delegue tarefas de envio de email e geração de relatórios a workers assíncronos.

Bloqueada
🔒

17.2 Projeto: Envio Assíncrono de Notificações e Relatórios

Implemente worker assíncrono para notificação de mudanças de status de pedidos com retentativas automáticas.

Bloqueada
📈
CAPÍTULO 19

Módulo 18 — Cache e Redis

2 aulas

Cache de View, Fragment Cache, Redis, Rate Limiting e Distributed Locks.

🔒

18.1 Redis Backend, View Caching & Invalidação

Utilize o decorator @cache_page ou a API de low-level cache (cache.set/get) para armazenar фрагmentos e resultados de consultas pesadas.

Bloqueada
🔒

18.2 Projeto: Otimização de Consultas Comprovadamente Lentas

Configure invalidação de cache no save() de produtos garantindo que atualizações reflitam instantaneamente na API.

Bloqueada
🧪
CAPÍTULO 20

Módulo 19 — Testes Automatizados

2 aulas

TestCase vs TransactionTestCase, APIClient, Fixtures, Mocks e Cobertura.

🔒

19.1 Django TestCase & Testing Helpers Antispam

Utilize TestCase para rollback automático entre testes e TransactionTestCase para suítes que testam consumers Django Channels.

Bloqueada
🔒

19.2 Projeto: Suíte Automatizada do Produto

Escreva testes cobrindo autenticação, permissões RBAC, criação de pedidos e resiliência de formulários com antispam_ok().

Bloqueada
🧹
CAPÍTULO 21

Módulo 20 — Qualidade e Manutenção

2 aulas

Ruff Linter, Formatação, Type Hints, Pre-commit e Conventional Commits.

🔒

20.1 Ruff, Linting de Alta Performance & Pre-commit

Configure Ruff para verificação de estilo de código ultra-rápida e hooks de pre-commit para evitar commits que quebrem as diretrizes.

Bloqueada
🔒

20.2 Projeto: Pipeline Local de Qualidade

Crie scripts locais que rodam ruff check, mypy e python manage.py test antes de cada git push.

Bloqueada
📊
CAPÍTULO 22

Módulo 21 — Observabilidade

2 aulas

Logs Estruturados, OpenTelemetry, Health Checks (live/ready) e Dashboard.

🔒

21.1 Endpoints de Saúde (/health/live e /health/ready)

Implemente endpoints de monitoria verificando integridade das conexões com MySQL e Redis para orquestradores.

Bloqueada
🔒

21.2 Projeto: Painel de Saúde Técnica e Operacional

Exiba estatísticas de leads, relatórios de compras e métricas de cache no painel de monitoria protegido.

Bloqueada
🐳
CAPÍTULO 23

Módulo 22 — Docker e Ambientes

2 aulas

Dockerfile, Multi-stage build, Docker Compose, Nginx, Daphne, MySQL e Redis.

🔒

22.1 Dockerfile Multi-Stage & docker-compose.yml

Utilize a sintaxe ${VAR:?mensagem} no docker-compose.yml para impedir a inicialização dos contêineres caso segredos faltem.

Bloqueada
🔒

22.2 Projeto: Ambiente Completo Containerizado

Configure a stack Docker unindo Nginx (porta 80), Web (Daphne/ASGI), MySQL 8 e Redis com redes isoladas.

Bloqueada
🚀
CAPÍTULO 24

Módulo 23 — Deploy Seguro

2 aulas

Checklist oficial de deploy, DEBUG=False, ALLOWED_HOSTS, Nginx, SSL Cloudflare e VPS.

🔒

23.1 Checklist Oficial de Deploy Django & SSL Full Strict

Configure o servidor Ubuntu 24.04 na Contabo atrás do Cloudflare em modo Full (strict) SSL com collectstatic e migrações executadas.

Bloqueada
🔒

23.2 Projeto: Deploy em VPS com HTTPS e Backup Testado

Execute git pull, docker compose build web, docker compose up -d e rotina de backup do banco de dados MySQL.

Bloqueada
💡
CAPÍTULO 25

Módulo 24 — Produto Digital e Validação

2 aulas

Jobs to Be Done, Proposta de Valor, MVP, Métrica de Ativação e Entrevistas.

🔒

24.1 Definição de MVP & Métrica de Ativação

Defina a métrica primária de ativação do produto e estruture o MVP focado estritamente na dor validada do cliente.

Bloqueada
🔒

24.2 Entrega: Documento de Validação do Produto

Construa o documento estratégico contendo persona, proposta de valor, precificação e critérios de retenção inicial.

Bloqueada
💳
CAPÍTULO 26

Módulo 25 — Pagamentos e Assinatura

2 aulas

Checkout, Kiwify Webhooks, Assinatura HMAC, Idempotência e Auditoria Financeira.

🔒

25.1 Webhooks de Pagamento Idempotentes (Kiwify)

Exija a presença do token Kiwify e utilize hmac.compare_digest para prevenir ataques de falsificação de requisições de pagamento.

Bloqueada
🔒

25.2 Projeto: Cobrança Real ou Simulada com Webhook Seguro

Implemente a view webhook_kiwify salvando registros na tabela Compra com get_or_create na coluna referencia_externa.

Bloqueada
🏢
CAPÍTULO 27

Módulo 26 — SaaS e Multi-Tenancy

1 aulas

Single-tenant vs Multi-tenant, Tenant por Linha/Schema/DB, Feature Flags e Limits.

🔒

26.1 Arquitetura Multi-Tenant Pragmática

Prepare o sistema para multi-tenancy adicionando FK de Tenant nos modelos essenciais com autorização em cada consulta.

Bloqueada
🏆
CAPÍTULO 28

Módulo 27 — Projeto Final: Lançamento do Produto Digital

1 aulas

Construção e Lançamento do Produto Digital de Operações Logísticas integrando os 27 módulos anteriores.

🔒

27.1 Projeto Final: Produto Digital de Operações Logísticas

Aprenda lançamento comercial do produto digital com conceitos práticos e exercícios aplicados.

Bloqueada