Este é o repositório de código do Django 5 by Example, escrito por Antonio Melé e publicado pela Packt. Ele contém todos os arquivos de apoio do projeto necessários para trabalhar no livro do início ao fim.
Revisor Técnico: Mark Walker
Prefácio: Paolo Melchiorre
O código é organizado em diretórios com o número do capítulo. Por exemplo, Chapter02
contém o código-fonte do capítulo 2. Cada pasta de capítulo possui um arquivo requirements.txt
que inclui todos os pacotes necessários para executar o código daquele capítulo. Eles podem ser instalados com o comando pip install -r requirements.txt
.
Execute o servidor de desenvolvimento Django com o comando:
python manage.py runserver
O Docker Compose é explicado no Capítulo 17. No entanto, todos os capítulos incluem uma configuração do Docker Compose e um script de gerenciamento (contribuição de @marksweb).
Comandos para construir e executar usando Docker Compose:
./do.sh build ./do.sh run
Lista de comandos:
build [<arg>]
: Constrói imagens Docker. Argumentos opcionais podem especificar imagens específicas a serem construídas.
exec [<arg>]
: executa um comando em um contêiner.
compose
: Wrapper mínimo em torno do Docker Compose, garantindo que os arquivos de configuração corretos sejam carregados.
migrate [<arg>]
: Aplique quaisquer migrações do Django não aplicadas.
makemigrations [<arg>]
: Crie uma nova migração do Django, especificando argumentos adicionais se necessário.
check
: Valide as configurações do Django.
shell
: Abra um terminal bash no contêiner especificado (web_run).
start [<arg>]
: Inicia o servidor Django e os serviços dependentes. Use -d para executar desanexado.
stop [<arg>]
: Para o servidor Django e os serviços dependentes.
Django 5 by Example (5ª edição) irá guiá-lo através de todo o processo de desenvolvimento de aplicações web profissionais com Django. O livro não cobre apenas os aspectos mais relevantes do framework, mas também ensinará como integrar outras tecnologias populares em seus projetos Django.
O livro orientará você na criação de quatro aplicativos do mundo real, na solução de problemas comuns e na implementação de práticas recomendadas, usando uma abordagem passo a passo fácil de seguir.
Depois de ler este livro, você terá um bom entendimento de como o Django funciona e como construir aplicações web práticas e avançadas.
Este livro requer Python 3.12+ e Django 5.
O livro cobre uma ampla gama de tópicos de desenvolvimento de aplicativos web divididos em quatro projetos Django diferentes:
Aplicativo de blog (capítulos 1-3): Crie um aplicativo de blog completo
Crie modelos de dados, visualizações e URLs
Implemente um site de administração para o seu blog
Use URLs canônicos para modelos e implemente URLs compatíveis com SEO para postagens
Crie pós-paginação e aprenda como criar visualizações baseadas em classes
Use formulários para permitir que os leitores compartilhem postagens por e-mail e implemente um sistema de comentários usando formulários modelo
Adicione tags às postagens usando django-taggit e recomende postagens semelhantes com base em tags compartilhadas
Implemente tags de modelo personalizadas para exibir as postagens mais recentes e mais comentadas
Implemente um filtro de modelo personalizado para renderizar Markdown
Crie um mapa do site e um feed RSS para o seu blog
Implemente um mecanismo de pesquisa de texto completo usando PostgreSQL
Site social (capítulos 4 a 7): Crie um site para marcar e compartilhar imagens
Implementar autenticação usando a estrutura de autenticação Django
Estenda o modelo de usuário com um modelo de perfil personalizado
Use a estrutura de mensagens Diango
Crie um back-end de autenticação personalizado
Implemente a autenticação social (OAuth2) com o Google usando Python Social Auth
Use extensões Django para executar o servidor de desenvolvimento através de HTTPS
Gere miniaturas de imagens com miniaturas fáceis
Implementar relacionamentos muitos para muitos em modelos
Crie um bookmarklet JavaScript com JavaScript e Django
Adicione solicitações HTTP assíncronas com JavaScript Fetch API e Django
Implementar paginação de rolagem infinita
Crie um sistema de acompanhamento de usuários
Crie um fluxo de atividades do usuário e otimize QuerySets
Aprenda a usar sinais do Django
Use django-debug-toolbar para obter informações de depuração relevantes
Contar visualizações de imagens com Redis
Crie uma classificação de imagens com Redis
Aplicativo de comércio eletrônico (capítulos 8 a 11): Crie uma loja on-line com todos os recursos
Construa os modelos do catálogo de produtos
Crie um carrinho de compras usando sessões do Django
Crie processadores de contexto personalizados
Gerenciar pedidos de clientes
Envie notificações assíncronas usando Celery e RabbitMQ
Monitory Aipo usando Flor
Integre o Stripe para processar pagamentos
Implemente um webhook para receber notificações de pagamento do Stripe
Crie visualizações personalizadas no site de administração do Django
Crie ações administrativas e gere arquivos CSV
Gere faturas em PDF dinamicamente usando Weasyprint
Crie um sistema de cupons para aplicar descontos em pedidos
Integre descontos com pagamentos Stripe
Crie um mecanismo de recomendação de produtos usando Redis
Adicione internacionalização à loja
Gere e gerencie arquivos de tradução
Use Rosetta para gerenciar traduções
Traduza padrões de URL e crie um seletor de idioma
Traduzir modelos usando Django-parler
Localize formulários usando Django-localflavor
Plataforma de eLearning (capítulos 12-17): Crie uma plataforma de eLearning incluindo um CMS
Crie modelos de curso
Criar e usar acessórios de dados
Use herança de modelo para criar conteúdo polimórfico
Crie um campo de modelo personalizado para ordenar o conteúdo do curso
Implementar visualizações de autenticação
Construa um sistema de gerenciamento de conteúdo usando visualizações e mixins baseados em classes
Restringir o acesso usando grupos e permissões
Crie conjuntos de formulários para gerenciar o conteúdo do curso
Crie a funcionalidade de arrastar e soltar para reordenar o conteúdo no local usando JavaScript e Django
Usando mixins genéricos do Django-braces
Implementar visualizações públicas e visualizações de matrículas de alunos
Renderize diferentes tipos de conteúdo e use django-embed-video
Armazenar conteúdo em cache usando a estrutura de cache
Use os back-ends de cache Memached e Redis
Monitore Redis usando Django-redisboard
Construa uma API usando Django REST Framework
Crie serializadores para modelos e visualizações de API personalizadas
Lidar com autenticação e permissões de API
Crie conjuntos de visualizações e roteadores de API
Consumir sua API usando solicitações Python
Crie um servidor de chat em tempo real usando Django Channels
Implemente um consumidor/cliente WebSocket usando Django e JavaScript
Use Redis para configurar uma camada de canal
Torne seu WebSocket totalmente assíncrono
Implemente um histórico de bate-papo persistindo mensagens de bate-papo
Crie configurações para vários ambientes
Configure um ambiente de produção usando Docker Compose com PostgreSQL, Redis, Nginx, uWSGI e Daphne
Sirva seu projeto com segurança através de HTTPS
Use a estrutura de verificação do sistema Django
Crie um middleware personalizado
Crie comandos de gerenciamento personalizados
Junte-se ao livro Discord Community para participar das discussões em andamento ou/e iniciar uma nova. Você encontrará outros desenvolvedores lendo o livro e ajudando uns aos outros com perguntas.
Django 4 por exemplo
Django 3 por exemplo
Django 2 por exemplo
Django por exemplo
Embora a 5ª edição do livro esteja traduzida para outros idiomas, você pode encontrar traduções das edições anteriores:
Chinês Simplificado: Django 4实例精解
Polonês: Django 4. Praktyczne tworzenie aplikacji sieciowych. Wydanie IV
Russo: Django 4 na primeira vez
Português Brasileiro: Aprenda Django 3 com Exemplos
Servo-Croata-Bósnio: Django 3 kroz primere, prevod III izdanja
Espanhol: Django 2
Se você já comprou uma versão impressa ou Kindle deste livro, poderá obter uma versão em PDF sem DRM gratuitamente. Basta clicar no link para reivindicar seu PDF gratuito: https://packt.link/free-ebook/9781805125457
Também fornecemos um arquivo PDF que contém imagens coloridas das capturas de tela/diagramas usados neste livro no GraphicBundle
Página 39 O exemplo de código Post.objects.filter(id_lt=3).count()
deve ser Post.objects.filter(id__lt=3).count()