SlideShare uma empresa Scribd logo
1 de 71
Desenvolvimento Web ágil com Python e Django
Quem sou eu?
✔ Me chamo Bruno Barbosa
✔ Programo por diversão há 13 anos
✔ “ profissionalmente há 6 anos
✔ Atualmente: Desenvolvedor Web pela Fundação
COPPETEC - COPPE / UFRJ
Noss@ cliente
Welcome to the Django!
Mas qual é a relação?
Abrindo a caixa...
Orientado a
aplicações
Internacionalização
Autenticação
Controle de Permissão
Django Admin
Django Admin
Tem mais?
Muito mais!!!
● Paginação
● Views genéricas
● Feeds
● Mensagens
● Signals
● Testes automatizados
● [...]
Algumas
considerações
Onde hospedar?
Site oficial
www.djangoproject.com
Links úteis
● Site oficial da linguagem Python: www.python.org
● Comunidade Python Brasil:
https://groups.google.com/forum/#!forum/python-brasil
● Site oficial do Django: www.djangoproject.com
● Comunidade Django Brasil:
https://groups.google.com/forum/#!forum/django-brasil
● Tutorial oficial do Django:
https://docs.djangoproject.com/pt-br/1.10/intro/tutorial01/
● Tutorial Django Girls: https://tutorial.djangogirls.org/pt/
Dúvidas?
Obrigado!
@brunobbbs
brunobarbosa.com.br

Mais conteúdo relacionado

Mais procurados

Web Master: Programação Web
Web Master: Programação WebWeb Master: Programação Web
Web Master: Programação WebRenan Palmeira
 
O novo ASP.NET - GDG-SP - Outubro/2016
O novo ASP.NET - GDG-SP - Outubro/2016O novo ASP.NET - GDG-SP - Outubro/2016
O novo ASP.NET - GDG-SP - Outubro/2016Renato Groff
 
Python Nordeste 2016 - Aplicações multiplataforma - Kivy
Python Nordeste 2016 - Aplicações multiplataforma - KivyPython Nordeste 2016 - Aplicações multiplataforma - Kivy
Python Nordeste 2016 - Aplicações multiplataforma - KivyJulio Cesar Eiras Melanda
 
Como ganhar dinheiro com android
Como ganhar dinheiro com androidComo ganhar dinheiro com android
Como ganhar dinheiro com androidLevi Saturnino
 
O novo ASP.NET - PUC Developers Day - 2016
O novo ASP.NET - PUC Developers Day - 2016O novo ASP.NET - PUC Developers Day - 2016
O novo ASP.NET - PUC Developers Day - 2016Renato Groff
 
O novo ASP.NET - dotnetConf.Local 2016 - Santos-SP
O novo ASP.NET - dotnetConf.Local 2016 - Santos-SPO novo ASP.NET - dotnetConf.Local 2016 - Santos-SP
O novo ASP.NET - dotnetConf.Local 2016 - Santos-SPRenato Groff
 
Apresentação Python e Games - Python Brasil 11 - 2015
Apresentação Python e Games - Python Brasil 11 - 2015Apresentação Python e Games - Python Brasil 11 - 2015
Apresentação Python e Games - Python Brasil 11 - 2015Julio Cesar Eiras Melanda
 
Dafiti Tech Conference - PHP Levado a Sério
Dafiti Tech Conference - PHP Levado a SérioDafiti Tech Conference - PHP Levado a Sério
Dafiti Tech Conference - PHP Levado a SérioEvaldo Junior
 
Palestra Sobre o que é um Front-End
Palestra Sobre o que é um Front-EndPalestra Sobre o que é um Front-End
Palestra Sobre o que é um Front-EndLuis Fernando Mangia
 
Ambiente de desenvolvimento em Python - PUG-MA
Ambiente de desenvolvimento em Python - PUG-MAAmbiente de desenvolvimento em Python - PUG-MA
Ambiente de desenvolvimento em Python - PUG-MALucas Souto
 
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NETO novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NETRenato Groff
 
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDay
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDayO novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDay
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDayRenato Groff
 
[#DevCast] Quero Desenvolver para phonegap, e agora? O que eu faço?
[#DevCast] Quero Desenvolver para phonegap, e agora? O que eu faço?[#DevCast] Quero Desenvolver para phonegap, e agora? O que eu faço?
[#DevCast] Quero Desenvolver para phonegap, e agora? O que eu faço?Mayron Cachina
 
O novo ASP.NET - Junho/2016
O novo ASP.NET - Junho/2016O novo ASP.NET - Junho/2016
O novo ASP.NET - Junho/2016Renato Groff
 
TDC 2008 Caneta Java Smartpen
TDC 2008 Caneta Java SmartpenTDC 2008 Caneta Java Smartpen
TDC 2008 Caneta Java SmartpenDr. Spock
 
Conexao Java 2012: Desenvolvendo RIA com Java e Ext GWT (GXT)
Conexao Java 2012: Desenvolvendo RIA com Java e Ext GWT (GXT) Conexao Java 2012: Desenvolvendo RIA com Java e Ext GWT (GXT)
Conexao Java 2012: Desenvolvendo RIA com Java e Ext GWT (GXT) Loiane Groner
 
O PHP Como deveria ser
O PHP Como deveria serO PHP Como deveria ser
O PHP Como deveria serVinicius Dias
 

Mais procurados (19)

Web Master: Programação Web
Web Master: Programação WebWeb Master: Programação Web
Web Master: Programação Web
 
O novo ASP.NET - GDG-SP - Outubro/2016
O novo ASP.NET - GDG-SP - Outubro/2016O novo ASP.NET - GDG-SP - Outubro/2016
O novo ASP.NET - GDG-SP - Outubro/2016
 
Python Nordeste 2016 - Aplicações multiplataforma - Kivy
Python Nordeste 2016 - Aplicações multiplataforma - KivyPython Nordeste 2016 - Aplicações multiplataforma - Kivy
Python Nordeste 2016 - Aplicações multiplataforma - Kivy
 
Como ganhar dinheiro com android
Como ganhar dinheiro com androidComo ganhar dinheiro com android
Como ganhar dinheiro com android
 
O novo ASP.NET - PUC Developers Day - 2016
O novo ASP.NET - PUC Developers Day - 2016O novo ASP.NET - PUC Developers Day - 2016
O novo ASP.NET - PUC Developers Day - 2016
 
O novo ASP.NET - dotnetConf.Local 2016 - Santos-SP
O novo ASP.NET - dotnetConf.Local 2016 - Santos-SPO novo ASP.NET - dotnetConf.Local 2016 - Santos-SP
O novo ASP.NET - dotnetConf.Local 2016 - Santos-SP
 
Apresentação Python e Games - Python Brasil 11 - 2015
Apresentação Python e Games - Python Brasil 11 - 2015Apresentação Python e Games - Python Brasil 11 - 2015
Apresentação Python e Games - Python Brasil 11 - 2015
 
Dafiti Tech Conference - PHP Levado a Sério
Dafiti Tech Conference - PHP Levado a SérioDafiti Tech Conference - PHP Levado a Sério
Dafiti Tech Conference - PHP Levado a Sério
 
Palestra Sobre o que é um Front-End
Palestra Sobre o que é um Front-EndPalestra Sobre o que é um Front-End
Palestra Sobre o que é um Front-End
 
Ambiente de desenvolvimento em Python - PUG-MA
Ambiente de desenvolvimento em Python - PUG-MAAmbiente de desenvolvimento em Python - PUG-MA
Ambiente de desenvolvimento em Python - PUG-MA
 
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NETO novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET
 
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDay
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDayO novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDay
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDay
 
[#DevCast] Quero Desenvolver para phonegap, e agora? O que eu faço?
[#DevCast] Quero Desenvolver para phonegap, e agora? O que eu faço?[#DevCast] Quero Desenvolver para phonegap, e agora? O que eu faço?
[#DevCast] Quero Desenvolver para phonegap, e agora? O que eu faço?
 
Engarrafei
EngarrafeiEngarrafei
Engarrafei
 
O novo ASP.NET - Junho/2016
O novo ASP.NET - Junho/2016O novo ASP.NET - Junho/2016
O novo ASP.NET - Junho/2016
 
TDC 2008 Caneta Java Smartpen
TDC 2008 Caneta Java SmartpenTDC 2008 Caneta Java Smartpen
TDC 2008 Caneta Java Smartpen
 
Conexao Java 2012: Desenvolvendo RIA com Java e Ext GWT (GXT)
Conexao Java 2012: Desenvolvendo RIA com Java e Ext GWT (GXT) Conexao Java 2012: Desenvolvendo RIA com Java e Ext GWT (GXT)
Conexao Java 2012: Desenvolvendo RIA com Java e Ext GWT (GXT)
 
Desenvolvimento Mobile Web & Software Livre
Desenvolvimento Mobile Web & Software LivreDesenvolvimento Mobile Web & Software Livre
Desenvolvimento Mobile Web & Software Livre
 
O PHP Como deveria ser
O PHP Como deveria serO PHP Como deveria ser
O PHP Como deveria ser
 

Semelhante a Desenvolvimento Web Ágil com Python e Django

Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 
Django: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazoDjango: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazoBernardo Fontes
 
Contribuir com o django é mais simples do que voce imagina!
Contribuir com o django é mais simples do que voce imagina!Contribuir com o django é mais simples do que voce imagina!
Contribuir com o django é mais simples do que voce imagina!Vinta Software
 
Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...
Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...
Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...Josafá Filho
 
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...Caio Moreno
 
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...IT4biz IT Solutions
 
Aplicativos Móveis: PWA, Instants Apps. Vamos entender?
Aplicativos Móveis: PWA, Instants Apps. Vamos entender?Aplicativos Móveis: PWA, Instants Apps. Vamos entender?
Aplicativos Móveis: PWA, Instants Apps. Vamos entender?Pedro Edson Silva Barros
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Jerônimo Medina Madruga
 
Introdução a Python e Django
Introdução a Python e DjangoIntrodução a Python e Django
Introdução a Python e Djangoledsifes
 
Python storm grupy_sp_23_04
Python storm grupy_sp_23_04Python storm grupy_sp_23_04
Python storm grupy_sp_23_04Eric Hideki
 
Comunidade, por onde começar
Comunidade, por onde começarComunidade, por onde começar
Comunidade, por onde começarRamon Mota
 
Do zero ao Python em 40 minutos! - Jerônimo Medina Madruga - Tchelinux Pelota...
Do zero ao Python em 40 minutos! - Jerônimo Medina Madruga - Tchelinux Pelota...Do zero ao Python em 40 minutos! - Jerônimo Medina Madruga - Tchelinux Pelota...
Do zero ao Python em 40 minutos! - Jerônimo Medina Madruga - Tchelinux Pelota...Tchelinux
 
Desenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoDesenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoIgor Sobreira
 
O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?Fabio Janiszevski
 
LPUG #10 agenda e community updates - 2020-09-16
LPUG #10   agenda e community updates - 2020-09-16LPUG #10   agenda e community updates - 2020-09-16
LPUG #10 agenda e community updates - 2020-09-16Fernando Fernández
 
Webapp, já posso investir nisso ? Latinoware 2011
Webapp, já posso investir nisso ? Latinoware 2011Webapp, já posso investir nisso ? Latinoware 2011
Webapp, já posso investir nisso ? Latinoware 2011Bruno Fernandes "PorKaria"
 

Semelhante a Desenvolvimento Web Ágil com Python e Django (20)

WordPress + Ionic
WordPress + IonicWordPress + Ionic
WordPress + Ionic
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
Django: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazoDjango: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazo
 
Hello, Python!
Hello, Python!Hello, Python!
Hello, Python!
 
Contribuir com o django é mais simples do que voce imagina!
Contribuir com o django é mais simples do que voce imagina!Contribuir com o django é mais simples do que voce imagina!
Contribuir com o django é mais simples do que voce imagina!
 
Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...
Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...
Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...
 
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...
 
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...
 
Aplicativos Móveis: PWA, Instants Apps. Vamos entender?
Aplicativos Móveis: PWA, Instants Apps. Vamos entender?Aplicativos Móveis: PWA, Instants Apps. Vamos entender?
Aplicativos Móveis: PWA, Instants Apps. Vamos entender?
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
 
Introdução a Python e Django
Introdução a Python e DjangoIntrodução a Python e Django
Introdução a Python e Django
 
Python storm grupy_sp_23_04
Python storm grupy_sp_23_04Python storm grupy_sp_23_04
Python storm grupy_sp_23_04
 
PHP: Como não programar em POG
PHP: Como não programar em POGPHP: Como não programar em POG
PHP: Como não programar em POG
 
Comunidade, por onde começar
Comunidade, por onde começarComunidade, por onde começar
Comunidade, por onde começar
 
Do zero ao Python em 40 minutos! - Jerônimo Medina Madruga - Tchelinux Pelota...
Do zero ao Python em 40 minutos! - Jerônimo Medina Madruga - Tchelinux Pelota...Do zero ao Python em 40 minutos! - Jerônimo Medina Madruga - Tchelinux Pelota...
Do zero ao Python em 40 minutos! - Jerônimo Medina Madruga - Tchelinux Pelota...
 
Google IO 2017 Extended - Cuiaba - Progressive Web Apps
Google IO 2017 Extended - Cuiaba - Progressive Web AppsGoogle IO 2017 Extended - Cuiaba - Progressive Web Apps
Google IO 2017 Extended - Cuiaba - Progressive Web Apps
 
Desenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoDesenvolvimento web ágil com Django
Desenvolvimento web ágil com Django
 
O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?
 
LPUG #10 agenda e community updates - 2020-09-16
LPUG #10   agenda e community updates - 2020-09-16LPUG #10   agenda e community updates - 2020-09-16
LPUG #10 agenda e community updates - 2020-09-16
 
Webapp, já posso investir nisso ? Latinoware 2011
Webapp, já posso investir nisso ? Latinoware 2011Webapp, já posso investir nisso ? Latinoware 2011
Webapp, já posso investir nisso ? Latinoware 2011
 

Desenvolvimento Web Ágil com Python e Django

Notas do Editor

  1. Atualmente vivemos um tempo de pressa, urgências, prazos... correria total... cada vez mais precisamos das coisas para ontem...
  2. E essa pressa atingiu o desenvolvimento de software, surgiram bibliotecas, frameworks... as pessoas estão sempre em busca de como desenvolver aplicações web em tempo recorde, mais rapido que todo mundo, para conquistar os clientes...
  3. Sabendo disso.. vamos para um estudo de caso fake =)
  4. Eis que nossa cliente, precisa de um “sisteminha simples” (porque todo cliente sempre dirá que precisa de apenas um “sisteminha”), de notícias, enquetes, com login em um sistema administrativo onde ela possa gerenciar esses dados..
  5. Dinheiro não é problema para nossa cliente, mas...
  6. Ela tem prazo para o sistema ficar pronto! Diferente do gif, nós não podemos simplesmente alterar a data do calendário e ganhar mais alguns dias.. Ela buscou outras duas empresas antes de encontrar você... a primeira deu um prazo de 35 dias para entrega... a segunda 30, mas ela precisa que o sistema esteja pronto em 20 dias! Isso mesmo, 20 dias!!!
  7. Eis que você... amante do dinheiro, mestre da usabilidade, h4ck3r das galaxias... topa o projeto!
  8. Você é esperto! Afinal é um Full Stack Overflow Developer! Conhece vários sites com snippets de código prontos, mamão com açúcar! Baixa tudo, copia aqui, cola ali... faz uns ajustes acolá... traduz os english, junta tudo e....
  9. Tcharaaaaaam..... em 10 dias... APENAS 10 DIAS!!! Em 10 dias o código está pronto! É o teclado mais rápido do oeste!!!
  10. Ele fica realmente impressionado em te ver lá DEZ dias depois… Você terminou! Ele precisava da aplicação em 20 dias, você fez na metade do tempo! A melhor proposta que ele recebeu antes de você era de 30 dias. Você foi três vezes mais rápido do que a melhor proposta O seu cliente tem plena certeza de que você é o cara mais rápido do mundo. E você provavelmente é! O problema é que não é só a velocidade que importa...
  11. Depois de ver a aplicação “funcionando”, o seu cliente não mudou de ideia… ele continua te achando o mais rápido… O título de teclado rápido do Oeste é seu, você é o mais rápido em escrever código. Mas desenvolver software não é só escrever código, não é só correr para escrever mais código em menos tempo. Desenvolver software envolve pensar! Você é o número 1 de velocidade, você é realmente bom em algo, mas seu cliente precisava de um produto de qualidade… E o problema é que ser melhor em algo que não é importante nem sempre é bom, e quando é bom...
  12. É bom só para você… :P
  13. A satisfação do cliente é fundamental… e para ajudar a atingir esse objetivo eu apresento a vocês...
  14. DJANGO!!! … Mas não esse django… xD
  15. Esse Django! O Framework Web para perfeccionistas com prazos! Desenvolvedores que conhecem e respeitam os prazos, mas respeitam, acima de tudo, a qualidade do produto a ser desenvolvido!
  16. Mas antes de seguirmos em frente, quero rapidamente conhecer vocês… Quem aqui conhece ou tem experiência com: - O básico de Python? - Alguma linguagem de programação? - Desenvolvimento Web? - Estrutura de funcionamento da web (protocolo HTTP, request, response…)? - Django?
  17. Bem… vamos continuar… Django! A essa hora vocês devem estar cheios de perguntas tipo… django!? O que é isso? De comer ou beber? Perfeccionistas com prazos? E aquele pônei???
  18. Esse é o Django pony, mascote não oficial do Django...
  19. Velho conhecido da comunidade Python, não muito raro o vemos por aí nas conferências de desenvolvimento de software apresentando palestras de altíssimo nível...
  20. Mas é importante respeitar o Django Pony, pois ele pode te atacar repentinamente!
  21. E os ataques dele são mortais!!!
  22. Qual é a relação entre um pônei rosa e um framework web?
  23. Magia! :)
  24. É isso? …
  25. Bom, vamos ao que interessa… Já temos um cliente insatisfeito, eu já conheço vocês, vocês já conhecem um pônei rosa, tá na hora de conhecer esse tal de Django né?! O Django é um framework, uma caixa de ferramentas à sua disposição para construir aplicações web de qualidade em tempo recorde.
  26. O Django foi criado para o portal do Lawrence Journal World, um jornal da cidade de Lawrence, no estado do Kansas, nos Estados Unidos.
  27. O framework ganhou popularidade, foi crescendo, e hoje vem sendo usado em projetos de todo tamanho, principalmente os de larga escala pelas mais variadas empresas
  28. Sabemos que Django é como se fosse uma caixa de ferramentas.. vamos olhar dentro dela para descobrirmos o que há lá e a entendermos melhor.. =)
  29. Django é orientado a aplicações, aplicações plugáveis. Você tem blocos de montar que integram-se para a construção dos seus projetos. Você encontra várias aplicações reusáveis na internet.
  30. E você pode montar esses blocos com muita facilidade. Django é fácil, e lhe permite caminhar por um caminho de qualidade com relativa facilidade. Se o seu projeto vai usar n aplicações plugáveis ou você vai desenvolver todas “no braço”, você certamente não encontrará tanta dificuldade e você provavelmente vai se divertir.
  31. Open source: Django é open source, pertence à comunidade, é meu, é seu. Se você acha que Django tem um problema, você pode reportá-lo e até corrigi-lo. Você pode fazer um fork do Django para adequá-lo à sua necessidade, ou qualquer coisa do tipo :)
  32. O Django é baseado no modelo MVC, um modelo de arquitetura de sistemas baseado em três camadas, uma para o modelo de dados (model), uma para a lógica de negócios (controller) e a última para a visualização dos dados (view). Todo mundo aqui sabe o que é o padrão MVC? Pois bem.. para ser mais exato, o Django não usa exatamente o padrão MVC, ele usa o...
  33. MTV: Model, Template e View Mas não se preocupe, isso só é diferente mesmo na nomenclatura, no fundo é tudo a mesma coisa…
  34. Os Models ficam com o banco de dados, as Views representam os controllers e o Template a visualização do resultado para o usuário.
  35. Essa é a estrutura completa de funcionamento de um request/response no Django… Mas não é importante agora entender isso.. =)
  36. Essa é uma estrutura mais simples, útil o suficiente para nosso exemplo… Aqui conseguimos visualizar o fluxo do que acontece do momento que o usuário acessa uma página de um sistema feito em Django… Vamos por partes...
  37. A página a ser acessada está na URL /livros. O cliente faz então a requisição em /livros.
  38. Neste momento o módulo de URLs do Django entra em ação para detectar qual a view responsável por tratar o acesso à URL /livros. A URL /livros está mapeada para a view listar_livros. Uma linha de código e esta URL está mapeada utilizando expressões regulares.
  39. Uma view é uma função, a função listar_livros vai receber nosso request e tratá-lo para retornar um response. Trata-se de um ponto “polêmico” do Django. No Django, uma view faz um trabalho semelhante ao trabalho feito por controllers em outros frameworks. Mas não se espante, não vamos escrever nenhum select na camada de interface ou injetar lógica de negócio lá. O que acontece no Django é que a camada de interface não se chama view, e só. Enxergue apenas como uma questão de nomenclatura :)
  40. A primeira linha da nossa função view faz uma chamada a uma classe Livro, um model. Um objeto que representa, no nosso sistema, o livro verdadeiramente falando. Esta classe também é responsável por fazer a comunicação com o banco de dados, então aqui estamos buscando todos os livros armazenados no banco de dados. O código da classe é bem explicativo: mostra que um livro é um Model e tem um título.
  41. Não importa o banco de dados. O Django é capaz de lidar com inúmeros bancos de dados, e é bem provável que pra você não seja muito importante o que está abaixo da camada de modelo. A menos que você tenha um sistema muito grande. Vamos voltar então à nossa view, que tem duas linhas de código. Já temos a lista de livros “em mãos”, agora podemos entregar ela para o nosso cliente, certo?
  42. Antes, entregamos ao template engine do Django que processa tudo isso e gera a saída para o nosso cliente.
  43. A saída não é tão bonita, mas você vai poder contar com um designer esperto pra te ajudar com isso :)
  44. E agora você pode entender de onde vem o MTV :)
  45. E tem mais uma coisa que talvez você não tenha percebido ainda...
  46. Com seis linhas de código Python…
  47. cinco linhas de código da template engine do Django
  48. e NENHUMA linha SQL nós construímos uma listagem com todos os registros de uma entidade no banco de dados.
  49. É lindo não é? =)
  50. Vocês veem… parece mágica =)
  51. Mais uma coisa...
  52. O Django suporta múltiplos bancos de dados, ele possui um ORM (Object-Relational Mapping) onde ele traduz código python para instruções SQL
  53. Django tem um framework de internacionalização extremamente simples de utilizar, que usa o gettext para traduzir termos. Escrever aplicações em vários idiomas no Django é brincadeira de criança.
  54. Django também tem autenticação integrada, com cadastro de usuários e grupos, e gerenciamento de permissões. Com mais uma linha de código, um simples decorator, poderíamos exigir que o usuário estivesse logado para ver a lista de livros.
  55. Junto ao cadastro de usuários, o sistema de autenticação do Django também integra controle de permissão.
  56. Trocando o login_required por permission_required, podemos criar uma permissão específica e dizer que apenas usuários ou grupos de usuários específicos teriam acesso àquela view.
  57. Mais uma coisa...
  58. E eu ainda não falei do Django Admin! =) Com mais algumas linhas de código temos uma interface administrativa completa com as operações mais comuns de CRUD
  59. Algumas telas do Django Admin
  60. Então, depois disso tudo, tem mais?
  61. Com certeza. Django conta com uma bilbioteca de paginação nativa; views genéricas para automatizar CRUDs; views para feeds (Atom ou RSS, o que você quiser :D); Um framework de mensagens simples e poderoso; CSRF nativo Signals Suporte nativo a testes, com cliente de testes Etc etc etc
  62. Antes de finalizar, vamos a algumas considerações.
  63. Eu não sei Python, tem problema? A vantagem de conhecer profundamente a linguagem Python é que ao desenvolver aplicações em Django, podemos explorar melhor os melhores recursos da linguagem Python para construir o seu software. Assim, o ideal é aprender Django e Python paralelamente, ou até aprender Python antes, e não apenas o suficiente de Python para usar o Django Admin :)
  64. Existe uma variedade enorme de web hostings que suportam aplicações em Python. Basicamente você precisa saber se o servidor web tem uma interface WSGI para que você poderá utilizar o Django ou outro framework Python. Alguns servidores que podem ser utilizados: Apache, IIS, Nginx, Passenger, dentre outros Além disso, empresas como Kinghost, Localweb, webfaction, python anywhere, linode, dentre outros suportam aplicações web em Python.
  65. E agora, o que fazer? Como prosseguir com o Django? Quais são os links bacanas pra seguir em frente?