O documento apresenta o framework Django para desenvolvimento web, descrevendo suas principais características como um poderoso ORM, sistema de templates eficiente e admin integrado. Também discute recursos adicionais como debug toolbar, extensões e hospedagem em serviços na nuvem.
1. Muito além do básico
Christiano Anderson
christiano@christiano.me
http://christiano.me
Twitter: @dump
2. O que é?
Framework para desenvolvimento web;
● Para quem é perfeccionista com prazos;
● Permite alto raproveitamento de código;
● Escrito em Python;
●
6. Um pouco de história
●
●
●
Criado em 2003 por Adrian Holovaty, Jacob KaplanMoss e Simon Willison;
Objetivo era sites de notícias como ljworld.com,
lawrence.com;
Ganhou popularidade muito rápido;
12. Recursos
●
Ótimo e poderoso ORM;
●
Segue princípios MVC (ou melhor: MTV);
●
Sistema de templates eficiente;
●
Um ADMIN que já vem integrado;
●
Sistema de cache poderoso;
●
Internacionalização;
●
Testes Unitários;
●
Personalização de middleware em diversos níveis;
13. E também...
●
Um servidor leve para desenvolvimento;
●
Roteador de URLs;
●
Poderoso sistema de formulários e validações;
●
Internacionalização;
●
Sistema de Geo integrado (GeoDjango);
●
Diversas APIs que podem ser plugadas no projeto;
●
Ótima documentação e uma comunidade fantástica!
14. ●
Models – Django ORM propriamente dito;
●
Templates – Sistema de Templates;
●
Views – Funções em Python;
22. Django Debug Toolbar
–
Permite depurar encontrar gargalos e problemas em uma
aplicação Django;
–
Se for corretamente utilizado, pode ser um grande aliado
para deixar sua aplicação com ótima performance
24. Django Debug Toolbar
●
●
No slide anterior é possível identificar gargalos em
queries do banco de dados;
Identificando os locais de gargalo, pode
implementar melhorias ou maneiras diferentes de
acessar esses dados;
26. Django Extensions
●
●
Um canivete suíço para quem trabalha com Django;
Possui inúmeras funções que auxiliam o desenvolvedor,
como :
–
Criação de gráfico da sua modelagem;
–
Ferramentas para gerenciar banco de dados;
–
Ferramentas de exportação;
–
shell_plus;
–
runserver_plus;
–
Entre outras
28. Django Compressor
●
●
Gerencia os arquivos estáticos e comprime
JavaScript e CSS em arquivos únicos;
Gera novo arquivo a cada modificação, dessa forma,
evita o cache do navegador;
30. Django South (Migrations)
●
●
●
O Models do Django não permite uma atualização
simples das tabelas;
Muitas vezes, quando você adiciona um novo
campo, é necessário fazer um ALTER TABLE na
mão;
O objetivo do South é tornar essa tarefa mais
simples possível
31. Grappelli Admin Interface
●
●
●
Um novo “skin” para o Admin tradicional do
Django;
Possui várias funcionalidades que deixam o Admin
mais elegante;
Possui conjunto de utilitários e editor WYSIWYG
para facilitar gestão de conteúdo.
35. GeoDjango
●
●
●
O Django possui uma API para uso de mapas e
cálculos geográficos;
É possível usar o ORM do Django para realizar
funções geográficas;
Hoje na Latinoware, assista minha palestra sobre
GeoDjango! :-)
38. Pontos de segurança
Por que é melhor usar:
http://site.com/produto/[0-9]+
ao invés de:
http://site.com/produto/{id}
?
39. Pontos de segurança
●
Com uma estrutura semelhante a
site.com/produto/{id} você fica vulnerável a SQL
injection
●
Seja o mais rigoroso possível com sua construção de
URLs, além de tornar o projeto mais elegante, você
evita problemas de segurança.
40. Boas práticas
●
Siga PEP8 e use variáveis legíveis;
●
Trabalhe sempre com o princípio DRY;
●
Trate sempre os dados externos (POST, GET);
●
Prefira sempre trabalhar com Virtualenv;
●
Sempre desabilite o DEBUG em produção;
43. É isso! :-)
Dúvidas? Se não der tempo de responder sua dúvida,
me procure durante o evento ou me chame nas redes
sociais
http://christiano.me
Twitter: @Dump