Django - Muito além do básico
-
Upload
christiano-anderson -
Category
Technology
-
view
5.281 -
download
1
Transcript of Django - Muito além do básico
Django - Muito alm do bsico
Muito alm do bsico
Christiano [email protected]://christiano.meTwitter: @dump
O que ?
Framework para desenvolvimento web;
Para quem perfeccionista com prazos;
Permite alto raproveitamento de cdigo;
Escrito em Python;
Pblico alvo
Iniciante
Avanado
Chuck Norris
Tambm bom para...
Designer
Programador
Suporte/Operao
Django?
Um pouco de histria
Criado em 2003 por Adrian Holovaty, Jacob Kaplan-Moss e Simon Willison;
Objetivo era sites de notcias como ljworld.com, lawrence.com;
Ganhou popularidade muito rpido;
Django Reinhardt
Django
um timo framework web
Django
NO um CMS
Django
Utiliza princpios de desenvolvimento gil
No se Repita!
Recursos
timo e poderoso ORM;
Segue princpios MVC (ou melhor: MTV);
Sistema de templates eficiente;
Um ADMIN que j vem integrado;
Sistema de cache poderoso;
Internacionalizao;
Testes Unitrios;
Personalizao de middleware em diversos nveis;
E tambm...
Um servidor leve para desenvolvimento;
Roteador de URLs;
Poderoso sistema de formulrios e validaes;
Internacionalizao;
Sistema de Geo integrado (GeoDjango);
Diversas APIs que podem ser plugadas no projeto;
tima documentao e uma comunidade fantstica!
Models Django ORM propriamente dito;
Templates Sistema de Templates;
Views Funes em Python;
Persistncia dos dados
MySQL;
PostgreSQL;
Oracle;
Outros bancos (com aplicao de patches);
MongoDB (com aplicao de patches);
Aplicativo
Aplicao que executa alguma tarefa especfica, exemplo, django.contrib.humanize
Projeto
Conjunto de cdigo, classes e aplicativos para um determinado objetivo.
Projetos vs Aplicativos
Um projeto a unio de um ou mais aplicativos;
Um aplicativo pode fazer parte de diversos projetos;
Anatomia de um projeto Django
Django ainda mais poderoso
Django Debug Toolbar
Django Debug Toolbar
Permite depurar encontrar gargalos e problemas em uma aplicao Django;
Se for corretamente utilizado, pode ser um grande aliado para deixar sua aplicao com tima performance
Django Debug Toolbar
Django Debug Toolbar
No slide anterior possvel identificar gargalos em queries do banco de dados;
Identificando os locais de gargalo, pode implementar melhorias ou maneiras diferentes de acessar esses dados;
Django Extensions
Django Extensions
Um canivete suo para quem trabalha com Django;
Possui inmeras funes que auxiliam o desenvolvedor, como :Criao de grfico da sua modelagem;
Ferramentas para gerenciar banco de dados;
Ferramentas de exportao;
shell_plus;
runserver_plus;
Entre outras
Exemplo Graph Models
Django Compressor
Gerencia os arquivos estticos e comprime JavaScript e CSS em arquivos nicos;
Gera novo arquivo a cada modificao, dessa forma, evita o cache do navegador;
Django Compressor
Django South (Migrations)
O Models do Django no permite uma atualizao simples das tabelas;
Muitas vezes, quando voc adiciona um novo campo, necessrio fazer um ALTER TABLE na mo;
O objetivo do South tornar essa tarefa mais simples possvel
Grappelli Admin Interface
Um novo skin para o Admin tradicional do Django;
Possui vrias funcionalidades que deixam o Admin mais elegante;
Possui conjunto de utilitrios e editor WYSIWYG para facilitar gesto de contedo.
Grappelli
Grappelli
Grappelli
GeoDjango
O Django possui uma API para uso de mapas e clculos geogrficos;
possvel usar o ORM do Django para realizar funes geogrficas;
Hoje na Latinoware, assista minha palestra sobre GeoDjango! :-)
GeoDjango
Deploy com Gunicorn
Pontos de segurana
Por que melhor usar:http://site.com/produto/[0-9]+ao invs de:http://site.com/produto/{id}
?
Pontos de segurana
Com uma estrutura semelhante a site.com/produto/{id} voc fica vulnervel a SQL injection
Seja o mais rigoroso possvel com sua construo de URLs, alm de tornar o projeto mais elegante, voc evita problemas de segurana.
Boas prticas
Siga PEP8 e use variveis legveis;
Trabalhe sempre com o princpio DRY;
Trate sempre os dados externos (POST, GET);
Prefira sempre trabalhar com Virtualenv;
Sempre desabilite o DEBUG em produo;
http://ponycheckup.com/
Onde hospedar?
https://www.digitalocean.com/
http://linode.com/
https://www.webfaction.com/
http://aws.amazon.com/
isso! :-)
Dvidas? Se no der tempo de responder sua dvida, me procure durante o evento ou me chame nas redes sociais
http://christiano.meTwitter: @Dump