Aprenda Django 3 com Exemplos
Crie aplicações web profissionais em Python, começando do zero
Descrição do livro
Se quiser conhecer o processo completo do desenvolvimento de aplicações web profissionais com Python e Django, este livro foi escrito para você. No processo de desenvolvimento de quatro projetos Django, você conhecerá os recursos do Django 3, verá como resolver problemas comuns no desenvolvimento web, como implementar as melhores práticas e como implantar suas aplicações com sucesso.
Neste livro, criaremos uma aplicação de blog, um site de rede social para marcação de imagens, uma loja online e uma plataforma de ensino à distância. Orientações passo a passo mostrarão como integrar tecnologias populares, como aperfeiçoar suas aplicações com AJAX, criar APIs RESTful e configurar um ambiente de produção para seus projetos Django.
Ao final do livro, você terá dominado Django 3 por meio da criação de aplicações web sofisticadas.
Ver menos ▲Sumário
- Prefácio
- Capítulo
- ■ Criando uma aplicação de blog
- Instalação do Django
- Criando um ambiente Python isolado
- Instalando Django com o pip
- Criando seu primeiro projeto
- Executando o servidor de desenvolvimento
- Configurações do projeto
- Projetos e aplicações
- Criando uma aplicação
- Fazendo o design do esquema de dados do blog
- Ativando a aplicação
- Criando e aplicando migrações
- Criando um site de administração para os modelos
- Criando um superusuário
- Site de administração de Django
- Adicionando modelos no site de administração
- Personalizando o modo como os modelos são exibidos
- Trabalhando com QuerySets e gerenciadores
- Criando objetos
- Atualizando objetos
- Lendo objetos
- Usando o método filter()
- Usando exclude()
- Usando order by()
- Removendo objetos
- Quando os QuerySets são avaliados
- Criando gerenciadores de modelo
- Implementando as views de lista e de detalhes
- Criando as views de lista e de detalhes
- Adicionando padrões de URL às suas views
- URLs canônicos para os modelos
- Criando templates para suas views
- Acrescentando paginação
- Usando views baseadas em classe
- Resumo
- Capítulo
- ■ Aprimorando o blog com recursos avançados
- Compartilhamento de postagens por email
- Criando formulários com Django
- Lidando com os formulários nas views
- Enviando emails com Django
- Renderizando formulários em templates
- Criando um sistema de comentários
- Criando um modelo
- Criando formulários a partir dos modelos
- Lidando com ModelForms nas views
- Adicionando comentários no template de detalhes da postagem
- Adicionando a funcionalidade de marcação com tags
- Obtendo postagens por semelhança
- Resumo
- Capítulo
- ■ Estendendo a aplicação de blog
- Criando tags e filtros de template personalizados
- Tags de template personalizadas
- Filtros de template personalizados
- Adicionando um mapa de site
- Criando feeds para suas postagens de blog
- Adicionando uma pesquisa full-text no blog
- Instalando o PostgreSQL
- Pesquisas simples
- Fazendo pesquisas em vários campos
- Criando uma view de pesquisa
- Stemming e classificação dos resultados
- Atribuindo pesos às consultas
- Pesquisando com semelhanças por trigramas
- Outras ferramentas de pesquisa full-text
- Resumo
- Sumário
- Capítulo
- ■ Criando uma rede social
- Criando um projeto de rede social
- Iniciando seu projeto de rede social
- Usando o framework de autenticação de Django
- Criando uma view de login
- Usando as views de autenticação de Django
- Views de login e de logout
- Views para alteração de senha
- Views para reiniciar senhas
- Cadastros e perfis de usuário
- Cadastro de usuários
- Estendendo o modelo de usuário
- Usando um modelo de usuário personalizado
- Usando o framework de mensagens
- Implementando b autenticação personalizado
- Acrescentando autenticação social no site
- Executando o servidor de desenvolvimento com HTTPS
- Autenticação usando o Facebook
- Autenticação usando o Twitter
- Autenticação com o Google
- Resumo
- Capítulo
- ■ Compartilhando conteúdo em seu site
- Criando um site de marcação de imagens
- Implementando o modelo de imagens
- Criando relacionamentos de muitos para muitos
- Registrando o modelo de imagens no site de administração
- Postando conteúdo de outros sites
- Fazendo uma limpeza nos campos do formulário
- Sobrescrevendo o método save() de um ModelForm
- Implementando um bookmarklet com a jQuery
- Criando uma view de detalhes para as imagens
- Gerando miniaturas das imagens com o easy-thumbnails
- Adicionando ações AJAX com a jQuery
- Carregando a jQuery
- CSRF em requisições AJAX
- Fazendo requisições AJAX com a jQuery
- Criando decoradores personalizados para suas views
- Adicionando paginação AJAX em suas views de lista
- Resumo
- Capítulo
- ■ Monitorando ações dos usuários
- Implementando um sistema de seguidores
- Criando relacionamentos de muitos para muitos com um modelo intermediário .200 Criando views de lista e de detalhes para perfis de usuários
- Implementando uma view AJAX para seguir usuários
- Implementando uma aplicação para registro de atividades genéricas
- Usando o framework contenttypes
- Acrescentando relacionamentos genéricos em seus modelos
- Evitando ações duplicadas no registro de atividades
- Adicionando ações dos usuários no registro de atividades
- Exibindo o registro de atividades
- Otimizando QuerySets que envolvem objetos relacionados
- Usando select related()
- Usando prefetch related()
- Criando templates para as ações
- Usando sinais para desnormalizar contadores
- Trabalhando com sinais
- Classes de configuração de aplicações
- Usando o Redis para armazenar visualizações de itens
- Instalando o Redis
- Usando o Redis com Python
- Armazenando visualizações de itens no Redis
- Armazenando um ranking no Redis
- Próximos passos com o Redis
- Resumo
- Capítulo
- ■ Criando uma loja online
- Criando um projeto de loja online
- Criando modelos para o catálogo de produtos
- Registrando os modelos do catálogo no site de administração
- Implementando as views do catálogo
- Criando templates para o catálogo
- Implementando um carrinho de compras
- Usando sessões Django
- Configurações de sessão
- Prazo de validade das sessões
- Armazenando carrinhos de compras em sessões
- Criando views para o carrinho de compras
- Adicionando itens no carrinho de compras
- Implementando um template para exibir o carrinho
- Adicionando produtos no carrinho
- Sumário
- Atualizando as quantidades dos produtos que estão no carrinho
- Criando um processador de contexto para o carrinho atual
- Processadores de contexto
- Definindo o carrinho no contexto da requisição
- Registrando os pedidos de compra dos clientes
- Criando modelos para os pedidos
- Incluindo os modelos para pedidos no site de administração
- Criando pedidos de clientes
- Disparando tarefas assíncronas com o Celery
- Instalando o Celery
- Instalando o RabbitMQ
- Adicionando o Celery no projeto
- Adicionando tarefas assíncronas em nossa aplicação
- Monitorando o Celery
- Resumo
- Capítulo
- ■ Gerenciando pagamentos e pedidos
- Integrando um gateway de pagamento
- Criando uma conta na sandbox do Braintree
- Instalando o módulo Python do Braintree
- Integrando o gateway de pagamento
- Integrando o Braintree com Hosted Fields
- Testando os pagamentos
- Preparando para o lançamento
- Exportando pedidos para arquivos CSV
- Adicionando ações personalizadas no site de administração
- Estendendo o site de administração com views personalizadas
- Gerando faturas em PDF dinamicamente
- Instalando o WeasyPrint
- Criando um template para o PDF
- Renderizando arquivos PDF
- Enviando arquivos PDF por email
- Resumo
- Capítulo
- ■ Ampliando sua loja
- Criando um sistema de cupons
- Implementando o modelo para os cupons
- Aplicando um cupom no carrinho de compras
- Aplicando cupons aos pedidos
- Adicionando internacionalização e localização
- Internacionalização com Django
- Configurações para internacionalização e localização
- Comandos de gerenciamento de internacionalização
- Como adicionar traduções em um projeto Django
- Como Django determina o idioma atual
- Preparando nosso projeto para internacionalização
- Traduções no código Python
- Traduções padrões
- Traduções preguiçosas
- Traduções incluindo variáveis
- Formas plurais nas traduções
- Traduzindo o seu próprio código
- Traduções nos templates
- Tag de template {% trans %}
- Tag de template {% blocktrans %}
- Traduzindo os templates da loja
- Usando a interface de tradução do Rosetta
- Traduções fuzzy
- Padrões de URL para internacionalização
- Adicionando um prefixo de idioma nos padrões de URL
- Traduzindo padrões de URL
- Permitindo que os usuários alterem o idioma
- Tradução de modelos com o django-parler
- Instalando o django-parler
- Traduzindo campos de modelos
- Integrando as traduções no site de administração
- Criando migrações para as traduções dos modelos
- Adaptando as views para traduções
- Localização de formatos
- Usando django-localflavor para validar campos de formulário
- Internacionalização com Django
- Implementando uma engine de recomendações
- Recomendando produtos com base em compras anteriores
- Resumo
- Capítulo
- ■ Criando uma plataforma de ensino à distância
- Criando o projeto de ensino à distância
- Implementando modelos para os cursos
- Registrando os modelos no site de administração
- Usando fixtures para fornecer dados iniciais aos modelos
- Criando modelos para conteúdos diversificados
- Usando herança de modelos
- Sumário
- Modelos abstratos
- Herança de modelos com várias tabelas
- Modelos proxy
- Criando modelos para os conteúdos
- Criando campos personalizados para os modelos
- Adicionando ordenação em objetos que representam módulos e conteúdos
- Criando um CMS
- Adicionando um sistema de autenticação
- Criando os templates de autenticação
- Criando views baseadas em classe
- Usando mixins com views baseadas em classe
- Trabalhando com grupos e permissões
- Restringindo o acesso às views baseadas em classe
- Gerenciando os módulos dos cursos e seus conteúdos
- Usando formsets para os módulos dos cursos
- Adicionando conteúdos aos módulos dos cursos
- Gerenciando os módulos e seus conteúdos
- Reordenando os módulos e seus conteúdos
- Usando mixins do django-braces
- Resumo
- Capítulo
- ■ Renderizando e fazendo caching de conteúdo
- Exibindo os cursos
- Adicionando um sistema de cadastramento de alunos
- Criando uma view para cadastramento de alunos
- Inscrevendo-se nos cursos
- Acessando os conteúdos dos cursos
- Renderizando diferentes tipos de conteúdo
- Usando o framework de cache
- Backends de cache disponíveis
- Instalando o Memcached
- Configurações de cache
- Adicionando o Memcached no projeto
- Monitorando o Memcached
- Níveis de cache
- Usando a API de baixo nível para o cache
- Caching com base em dados dinâmicos
- Caching de fragmentos de template
- Caching de views
- Usando o cache por site
- Resumo
- Capítulo
- ■ Criando uma API
- Implementando uma API RESTful
- Instalando o framework REST de Django
- Definindo serializadores
- Entendendo os parsers e os renderizadores
- Implementando as views de lista e de detalhes
- Criando serializadores aninhados
- Implementando views personalizadas na API
- Lidando com a autenticação
- Adicionando permissões às views
- Criando viewsets e roteadores
- Adicionando outras ações nos viewsets
- Criando permissões personalizadas
- Serializando os conteúdos dos cursos
- Consumindo a API RESTful
- Resumo
- Capítulo
- ■ Criando um servidor de bate-papo
- Criando uma aplicação de bate-papo
- Implementando a view da sala de bate-papo
- Desativando o cache por site
- Django em tempo real com o Channels
- Aplicações assíncronas usando ASGI
- Ciclo de requisição/resposta com o Channels
- Instalando o Channels
- Implementando um consumidor
- Roteamento
- Implementando o cliente WebSocket
- Ativando uma camada de canais
- Canais e grupos
- Configurando uma camada de canais com o Redis
- Atualizando o consumidor para fazer broadcast de mensagens
- Adicionando um contexto às mensagens
- Modificando o consumidor para que seja totalmente assíncrono
- Integrando a aplicação de bate-papo às views existentes
- Resumo
- Sumário
- Capítulo
- ■ Preparando para o lançamento
- Criando um ambiente de produção
- Gerenciando configurações para vários ambientes
- Usando o PostgreSQL
- Verificando o seu projeto
- Servindo Django com WSGI
- Instalando o uWSGI
- Configurando o uWSGI
- Instalando o NGINX
- Ambiente de produção
- Configurando o NGINX
- Servindo componentes estáticos e de mídia
- Protegendo as conexões com SSL/TLS
- Criando um certificado SSL/TLS
- Configurando o NGINX para que utilize SSL/TLS
- Configurando o projeto Django para SSL/TLS
- Redirecionando tráfego HTTP para HTTPS
- Usando o Daphne com o Django Channels
- Usando conexões seguras para WebSockets
- Incluindo o Daphne na configuração do NGINX
- Criando um middleware personalizado
- Criando um middleware para subdomínios
- Servindo vários subdomínios com o NGINX
- Implementando comandos de gerenciamento personalizados
- Resumo
- Índice remissivo
Sobre o autor
Antonio Melé é diretor técnico (CTO) da Nucoro, uma empresa de fintech com sede em Londres, a qual oferece uma moderna plataforma de tecnologia para criar soluções digitais em gerenciamento de patrimônio. Antonio desenvolve projetos em Django desde 2006 para clientes de diversos mercados. Em 2009, fundou a Zenx IT, uma empresa de desenvolvimento… Ver perfil completo ▶
Livros relacionados
Recursos
Opinião dos leitores
ANDERSON R DE A
Ótimo livro, aboda o assunto com muita clareza, recomendo para quem quer entrar no mundo Django.
Léo L S R D
O livro é bem redigido, técnico com exemplos práticos e seções que o autor explica o código que acabou de criar e dá para entender a lógica por trás. Recomendo a todos que sejam de nível iniciante a intermediário.
Elton L d S d F
Ótimo livro, bem detalhado, aborda todos os tópicos, do básico ao avançado.






