Django: O Framework web para perfeccionistas com prazos

1,646 views

Published on

Apresentação de Django apresentada no II Liberdade Interativa, que aconteceu no dia 19 de agosto de 2010, na Faesa, Av. Vitória (Vitória, ES).

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,646
On SlideShare
0
From Embeds
0
Number of Embeds
34
Actions
Shares
0
Downloads
29
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Django: O Framework web para perfeccionistas com prazos

  1. 1. Desenvolvendo
  2. 2. Desenvolvendo aplicações web
  3. 3. Desenvolvendo aplicações web em tempo
  4. 4. Desenvolvendo aplicações web em tempo RD E . R E CO
  5. 5. 35
  6. 6. 30
  7. 7. 20
  8. 8. 10
  9. 9. O teclado mais rápido do Oeste.
  10. 10. #$ %&*&@#@# #@$% O teclado mais rápido do Oeste.
  11. 11. Django O framework web para perfeccionistas com prazos
  12. 12. quem é você?
  13. 13. Welcome to the Django!
  14. 14. mas qual é a relação?
  15. 15. Magia
  16. 16. Abrindo a caixa
  17. 17. Orientado a aplicações
  18. 18. MVC?
  19. 19. MVC? +-
  20. 20. Cliente (browser) Template URL View Model Banco de dados
  21. 21. GET /livros Template URL View Model Banco de dados
  22. 22. (r'^livros/$', 'views.listar_livros'), GET /livros Template Módulo de URLs View Model Banco de dados
  23. 23. def listar_livros(request): livros = Livro.objects.all() GET /livros return render_to_response('livros.html', locals()) Template Módulo de URLs listar_livros(request) Model Banco de dados
  24. 24. def listar_livros(request): livros = Livro.objects.all() GET /livros return render_to_response('livros.html', locals()) class Livro(Model): Template titulo = Módulo de URLs CharField(max_length = 100) listar_livros(request) Model: classe Livro Banco de dados
  25. 25. def listar_livros(request): livros = Livro.objects.all() GET /livros return render_to_response('livros.html', locals()) Template Módulo de URLs listar_livros(request) Model: classe Livro Não importa (:
  26. 26. def listar_livros(request): livros = Livro.objects.all() GET /livros return render_to_response('livros.html', locals()) livros.html Módulo de URLs listar_livros(request) <ul> {% for livro in livros %} Model: classe Livro <li>{{ livro.titulo }}</li> {% endfor %} </ul>
  27. 27. GET /livros livros.html Módulo de URLs listar_livros(request) Model: classe Livro
  28. 28. Cliente (browser) Template URL View Model Banco de dados
  29. 29. E mais...
  30. 30. E mais... 6 linhas de código Python.
  31. 31. E mais... 6 linhas de código Python. 5 linhas de html/template.
  32. 32. E mais... SQL? 6 linhas de código Python. 5 linhas de html/template.
  33. 33. Amazing!!!
  34. 34. Amazing!!! Asombroso!!! Surpreendente!!! i18n
  35. 35. Autenticação
  36. 36. @login_required def listar_livros(request): livros = Livro.objects.all() return render_to_response('livros.html', locals()) Autenticação
  37. 37. Controle de permissão
  38. 38. Controle de permissão @permission_required('livros.pode_listar') def listar_livros(request): livros = Livro.objects.all() return render_to_response('livros.html', locals())
  39. 39. Django Forms
  40. 40. class LivroForm(Form): titulo = CharField(max_length = 100) Django Forms
  41. 41. class LivroForm(Form): titulo = CharField(max_length = 100) class Livro(Model): titulo = CharField(max_length = 100) Django Forms
  42. 42. class LivroForm(ModelForm): class Meta: model = Livro Django Forms
  43. 43. class LivroForm(ModelForm): class Meta: model = Livro class Livro(Model): titulo = CharField(max_length = 100) autor = CharField(max_length = 255) descricao = CharField(max_length = 1024) Django Forms
  44. 44. class LivroForm(ModelForm): class Meta: model = Livro class Livro(Model): titulo = CharField(max_length = 100) autor = CharField(max_length = 255) descricao = CharField(max_length = 1024) Tem um desses pra Fórmula 1? Django Forms
  45. 45. Tá de class LivroForm(ModelForm): sacanagem?! Meta: class model = Livro class Livro(Model): titulo = CharField(max_length = 100) autor = CharField(max_length = 255) descricao = CharField(max_length = 1024) Tem um desses pra Fórmula 1? Django Forms
  46. 46. class PessoaForm(Form): nome = CharField(max_length = 100) cpf = CPFField() telefone = BRPhoneField() L10n
  47. 47. class PessoaForm(Form): nome = CharField(max_length = 100) cpf = CPFField() telefone = BRPhoneField() L10n
  48. 48. 1 /2
  49. 49. 2 /2
  50. 50. Da pra fazer melhor?
  51. 51. Django admin
  52. 52. class Livro(Model): titulo = CharField(max_length = 100)
  53. 53. class Livro(Model): titulo = CharField(max_length = 100) admin.site.register(Livro)
  54. 54. class Livro(Model): titulo = CharField(max_length = 100) admin.site.register(Livro) (r'^admin/', include(admin.site.urls)),
  55. 55. class Livro(Model): titulo = CharField(max_length = 100) admin.site.register(Livro) (r'^admin/', include(admin.site.urls)), Resultado?
  56. 56. 4
  57. 57. Merece a dancinha
  58. 58. Tem mais?
  59. 59. Tem Paginação mais? Views genéricas Feeds Mensagens CSRF Signals Testes automatizados [...]
  60. 60. Algumas considerações
  61. 61. Eu não sei Python
  62. 62. Onde e como hospedar?
  63. 63. E agora?
  64. 64. www.djangoproject.com
  65. 65. www.djangobrasil.org
  66. 66. www.aprendendodjango.com
  67. 67. www.djangosites.org
  68. 68. groups.google.com/group/django-brasil
  69. 69. www.djangovideos.com
  70. 70. ? /∞
  71. 71. Django O framework web para perfeccionistas com prazos @franciscosouza francisco@franciscosouza.net

×