Your SlideShare is downloading. ×
0
Muito além do básico

Christiano Anderson
christiano@christiano.me
http://christiano.me
Twitter: @dump
O que é?

Framework para desenvolvimento web;
● Para quem é perfeccionista com prazos;
● Permite alto raproveitamento de c...
Público alvo

Iniciante

Avançado

Chuck Norris
Também bom para...

Designer

Programador

Suporte/Operação
Django?
Um pouco de história
●

●

●

Criado em 2003 por Adrian Holovaty, Jacob KaplanMoss e Simon Willison;
Objetivo era sites de...
Django Reinhardt
Django

É um ótimo framework web
Django

NÃO é um CMS
Django

Utiliza princípios de desenvolvimento ágil
Não se Repita!
Recursos
●

Ótimo e poderoso ORM;

●

Segue princípios MVC (ou melhor: MTV);

●

Sistema de templates eficiente;

●

Um AD...
E também...
●

Um servidor leve para desenvolvimento;

●

Roteador de URLs;

●

Poderoso sistema de formulários e validaçõ...
●

Models – Django ORM propriamente dito;

●

Templates – Sistema de Templates;

●

Views – Funções em Python;
Persistência dos dados
●

MySQL;

●

PostgreSQL;

●

Oracle;

●

Outros bancos (com aplicação de patches);

●

MongoDB (co...
Aplicativo

●

Aplicação que executa alguma tarefa específica,
exemplo, django.contrib.humanize
Projeto

●

Conjunto de código, classes e aplicativos para um
determinado objetivo.
Projetos vs Aplicativos

Um projeto é a união de um ou mais aplicativos;
Um aplicativo pode fazer parte de diversos projet...
Anatomia de um projeto Django
Django ainda mais poderoso
Django Debug Toolbar
Django Debug Toolbar
–

Permite depurar encontrar gargalos e problemas em uma
aplicação Django;

–

Se for corretamente ut...
Django Debug Toolbar
Django Debug Toolbar
●

●

No slide anterior é possível identificar gargalos em
queries do banco de dados;
Identificando o...
Django Extensions
Django Extensions
●

●

Um canivete suíço para quem trabalha com Django;
Possui inúmeras funções que auxiliam o desenvolve...
Exemplo Graph Models
Django Compressor
●

●

Gerencia os arquivos estáticos e comprime
JavaScript e CSS em arquivos únicos;
Gera novo arquivo a...
Django Compressor
Django South (Migrations)
●

●

●

O Models do Django não permite uma atualização
simples das tabelas;
Muitas vezes, quand...
Grappelli Admin Interface
●

●

●

Um novo “skin” para o Admin tradicional do
Django;
Possui várias funcionalidades que de...
Grappelli
Grappelli
Grappelli
GeoDjango
●

●

●

O Django possui uma API para uso de mapas e
cálculos geográficos;
É possível usar o ORM do Django para ...
GeoDjango
Deploy com Gunicorn
Pontos de segurança
Por que é melhor usar:
http://site.com/produto/[0-9]+
ao invés de:
http://site.com/produto/{id}

?
Pontos de segurança
●

Com uma estrutura semelhante a
site.com/produto/{id} você fica vulnerável a SQL
injection

●

Seja ...
Boas práticas
●

Siga PEP8 e use variáveis legíveis;

●

Trabalhe sempre com o princípio DRY;

●

Trate sempre os dados ex...
http://ponycheckup.com/
Onde hospedar?
●

https://www.digitalocean.com/

●

http://linode.com/

●

https://www.webfaction.com/

●

http://aws.amaz...
É isso! :-)
Dúvidas? Se não der tempo de responder sua dúvida,
me procure durante o evento ou me chame nas redes
sociais
h...
Upcoming SlideShare
Loading in...5
×

Django - Muito além do básico

2,570

Published on

Uma breve introdução ao framework Django, apresentação da Latinoware 2013

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,570
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
84
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Transcript of "Django - Muito além do básico"

  1. 1. Muito além do básico Christiano Anderson christiano@christiano.me http://christiano.me Twitter: @dump
  2. 2. O que é? Framework para desenvolvimento web; ● Para quem é perfeccionista com prazos; ● Permite alto raproveitamento de código; ● Escrito em Python; ●
  3. 3. Público alvo Iniciante Avançado Chuck Norris
  4. 4. Também bom para... Designer Programador Suporte/Operação
  5. 5. Django?
  6. 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;
  7. 7. Django Reinhardt
  8. 8. Django É um ótimo framework web
  9. 9. Django NÃO é um CMS
  10. 10. Django Utiliza princípios de desenvolvimento ágil
  11. 11. Não se Repita!
  12. 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. 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. 14. ● Models – Django ORM propriamente dito; ● Templates – Sistema de Templates; ● Views – Funções em Python;
  15. 15. Persistência dos dados ● MySQL; ● PostgreSQL; ● Oracle; ● Outros bancos (com aplicação de patches); ● MongoDB (com aplicação de patches);
  16. 16. Aplicativo ● Aplicação que executa alguma tarefa específica, exemplo, django.contrib.humanize
  17. 17. Projeto ● Conjunto de código, classes e aplicativos para um determinado objetivo.
  18. 18. Projetos vs Aplicativos Um projeto é a união de um ou mais aplicativos; Um aplicativo pode fazer parte de diversos projetos;
  19. 19. Anatomia de um projeto Django
  20. 20. Django ainda mais poderoso
  21. 21. Django Debug Toolbar
  22. 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
  23. 23. Django Debug Toolbar
  24. 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;
  25. 25. Django Extensions
  26. 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
  27. 27. Exemplo Graph Models
  28. 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;
  29. 29. Django Compressor
  30. 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. 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.
  32. 32. Grappelli
  33. 33. Grappelli
  34. 34. Grappelli
  35. 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! :-)
  36. 36. GeoDjango
  37. 37. Deploy com Gunicorn
  38. 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. 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. 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;
  41. 41. http://ponycheckup.com/
  42. 42. Onde hospedar? ● https://www.digitalocean.com/ ● http://linode.com/ ● https://www.webfaction.com/ ● http://aws.amazon.com/
  43. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×