SlideShare uma empresa Scribd logo
Data: 04 de dezembro de 2014
Marcos Thomaz da Silva
Conhecendo
Django
• Criado por Jacob Kaplan Moss e Adrian Holovaty
• Lançado em 2003
• Django Reinhardt
• Atualmente na versão 1.7.1
Mas o que é Django???
O que é Django?
• Framework Web de alto nível
“Um framework (ou arcabouço) em desenvolvimento
de software, é uma abstração que une códigos comuns
entre vários projetos de software provendo uma
funcionalidade genérica”.
Fayad e Schmidt
“Frameworks são projetados com a intenção de facilitar o
desenvolvimento de software, habilitando designers e
programadores a gastarem mais tempo determinando as
exigências do software do que com detalhes de baixo nível
do sistema”
O que o Django NÃO é?
• Não é um CMS
• Não é uma biblioteca
• Não é um “programa”
Características do Django
• Desenvolvido em Python
– Criada por Guido van Rossun
– Lançada em 1991
– Linguagem de Alto Nível
– Interpretada e Interativa
– Gera Bytecodes
– Produtividade e Manutenção de Código
– Multiplataforma (nativa Linux)
– Multiparadigma (procedural, OO, funcional)
– Open Source
– Monty Python Flying Circus
• Python, quem usa?
Características do Django
• Multiplataforma
O que mais
• Focado no desenvolvimento ágil
• Conceito DRY – Don’t Repeat Yourself
• Plugabilidade
• MTV / MVC
• Automatização de Tarefas
• Foco no Negócio
• Open Source
O que preciso saber...
• Pequenas Aplicações:
– Conjunto HTML / CSS / Javascript
– Servidor Web / Aplicações
– Formulários e Validação
– Persistência de Dados
• Médias e Grandes Aplicações:
– Engine de templates
– Mapeador de URL’s
– Controle de Sessões
– Autenticação
– Testes e Metodologias Ágeis
– Cache
– Ajax
E agora?
Será que esse tal Django atende a
todos estes requisitos?
Recursos do .
Recursos do Django
• Arquivo Centralizado de Configurações
– Ativação de Ambiente de Depuração
– “Plugins” vinculados
– Conexão com Banco de Dados
– Módulos Intermediários
– Idioma
Recursos do Django
• Servidor web embutido;
• Módulos para Deploy nos principais servidores
Web
– mod_python
– WSGI /mod_wsgi
– FastCGI
– SCGI - Simple Common Gateway Interface
– AJP - Apache JServ Protocol / Tomcat
Recursos do Django – Servidores Web/
Aplicações
Recursos do Django
• Módulo completo de formulários
– Geração automática baseada em modelos
– Validação centralizada
– Integração com banco de dados
Recursos do Django
• ORM (Mapeamento Objeto Relacional)
– Geração de Banco de Dados
– Engenharia Reversa de Banco
– Migrations
– Diversos Bancos de Dados (PostgreSQL, MySQL,
Oracle, SQLite, DB2, SQLServer, Firebird/Interbase)
– Conexões Multibancos
Recursos do Django - ORM
Recursos do Django
• Sistema completo de Templates
– Sistema Próprio de Templates
– Integração com Outros Motores de Templates
– Separação de Regras de Negócio e Templates
– Tags, Filtros e Funções Especiais
– Possibilidade de Extensão de Filtros e Funções
Recursos do Django – Templates
Recursos do Django
• Mapeador de URL’s (URL Dispatcher)
– URL’s Limpas e Elegantes
– Definição de URL’s
– Utilização de Expressões Regulares
– Mapeamento de URL’s por Módulo
Recursos do Django – URL’s
Recursos do Django
• Gerenciamento Completo de Sessões
– Em arquivo
– Em bancos de dados relacional
– Em banco de dados especial (redis/memcached)
– Controle de expiração de sessões
• Ao fechar o navegador
• Nunca
• Data específica
Recursos do Django
• Módulo completo de Autenticação
– Módulo embutido de autenticação
– Possibilidade de Extensão de Modelo de Usuários
– Integração dom Facebook, Twitter, Google+
– Bases LDAP / Active Directory
– Recuperação de Senhas
Recursos do Django
• Módulos de Testes e Metodologias Ágeis
– TDD – Test Driven Development
– BDD – Behavior Driven Development
Recursos do Django
• Módulos Ajax para aplicações Ricas
• Editores WYSIWYG
• Web Components
• API’s Rest e SOAP
Recursos do Django
• Cache
– Em memória
– Em arquivos
– Em bancos de dados (Relacionais e NoSQL)
– Por Requisição
– Por Consulta
– Por Página
Recursos do Django
• Interface Administrativa - Admin
– Aplicação Plugável
– Interface e estruturas criadas (quase)
automaticamente
– Possibilidade de Personalização
– Pequenos sistemas e backends em minutos
– Excelente produtividade
– Motivo de Confusão: Django = Programa
Recursos do Django - Admin
Recursos do Django - Admin
Recursos do Django - Admin
E mais
• Criação de Log de Aplicações
• Internacionalização
• Criação Automática de Sitemaps
• Integração com Redes Sociais
• Herança de Modelos
• Geoprocessamento (GeoDjango)
• Recursos de Performance
• Envio de Emails
E ainda mais
• Geração de Feed de Notícias (RSS/Atom)
• Paginação
• Módulo de Mensagens
• Serializações (XML, JSON, YAML)
• Arquivos Estáticos
• Signals
• Generic Relations
• Comunidade Brasileira Participativa
• Muito Material na Internet
• Excelente Documentação
Não contavam com minha
astúcia!
Lista de Sites Úteis Relacionados
• Site Oficial da Linguagem Python: https://www.python.org/
• Site Oficial do Framework Django: https://www.djangoproject.com/
• Lista de Sites Feitos usando Django: https://www.djangosites.org/
• Site com lista de diversas Aplicações Plugáves (Plugins) para o Django:
• https://www.djangopackages.com/packages/p/django-pluggables/
• Github – Projetos e Aplicações Plugáveis Django:
https://github.com/search?q=django
• Site de Depoimentos do Porque Usar Django:
https://ericstk.wordpress.com/2014/03/17/por-que-escolher-django/
• Grupo Python Acre no Facebook (Ainda Iniciando):
https://www.facebook.com/groups/1504095973195084/
Estrutura das Requisições no Django
Pequeno Trecho de Código
• Modelo (Banco de Dados)
Pequeno Trecho de Código
• Views (camada de Controle / Controller)
Pequeno Trecho de Código
• Template (Camada de Visualização) – base.html
Pequeno Trecho de Código
• Template (Camada de Visualização) –
mensagem.html
Pequeno Trecho de Código
• Template (Camada de Visualização) – Resultado
Pequeno Trecho de Código
• Template (Camada de Visualização) – Resultado
O que fazer com Django?
• Sites
• Aplicações Web
• Serviços Web
• API’s
• Globo é um dos cases de sucesso :
– 45 milhões de acesso/dia
– 32 mil acessos / minuto
– 10 milhões de visitantes únicos / dia
Muito Obrigado
marcosthomazs@gmail.com

Mais conteúdo relacionado

PDF
Tutorial Django + Python
PDF
Curso de Python e Django
PDF
Polimorfismo em java
PDF
HERANÇA - Programação Orientada a Objetos JAVA
PPT
Java modulo 01 - Introdução
PDF
Programação Orientada a Objetos
PPTX
01 Introdução à programação web
PDF
Internet das Coisas - Conceitos, tecnologias e aplicações
Tutorial Django + Python
Curso de Python e Django
Polimorfismo em java
HERANÇA - Programação Orientada a Objetos JAVA
Java modulo 01 - Introdução
Programação Orientada a Objetos
01 Introdução à programação web
Internet das Coisas - Conceitos, tecnologias e aplicações

Mais procurados (20)

PPTX
Assespro pr-workshop-robot framework
PDF
POO - Aula 10 - Polimorfismo
PPTX
Prática de laboratório utilizando views, stored procedures e triggers
PPTX
Aula 01 - Apresentaçã e Conceitos.pptx
PPS
Projeto de Software
PDF
Introdução a Sistemas Distribuídos
PDF
Paradigmas de programação
PDF
Aula 02 - Introdução ao PHP
PDF
Sistema acadêmico
KEY
Python 01
PDF
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
PPTX
Introdução ao BD Postgre
PDF
Introdução a estruturas de dados em python
PDF
POO - 11 - Prática de Herança
PDF
Curso javascript básico
PDF
Curso de css3 unidade 1 - introdução ao css
PDF
SI - Processos, Threads, Virtualização e Migração de Código
PDF
Minicurso de Django - Desenvolvimento ágil web com Django e Python
PPTX
Programação Orientado a Objetos
PDF
clean code
Assespro pr-workshop-robot framework
POO - Aula 10 - Polimorfismo
Prática de laboratório utilizando views, stored procedures e triggers
Aula 01 - Apresentaçã e Conceitos.pptx
Projeto de Software
Introdução a Sistemas Distribuídos
Paradigmas de programação
Aula 02 - Introdução ao PHP
Sistema acadêmico
Python 01
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Introdução ao BD Postgre
Introdução a estruturas de dados em python
POO - 11 - Prática de Herança
Curso javascript básico
Curso de css3 unidade 1 - introdução ao css
SI - Processos, Threads, Virtualização e Migração de Código
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Programação Orientado a Objetos
clean code
Anúncio

Semelhante a Conhecendo o Django (20)

PDF
Palestra Zend Framework na Campus Party 2011
PDF
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
PDF
Python mudando o modo de desenvolver para a internet
ODP
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDA
PPSX
Web tools pt-br
PDF
KEY
Desenvovelndo Aplicações com PHP, AJAX e Y!UI Yahoo User Interface
PPSX
Web Tools Pt Br
PDF
Administração de portais
PDF
Técnicas de Programação para a Web
PDF
Plataforma Android: Produtividade Além do SDK
KEY
Django - Desenvolvimento web ágil com Python
PPTX
Curso PHP UNIFACS 2014.1 – Frameworks
PPT
F R A M E W O R K D J A N G O
PDF
Com vocês, Django!
PDF
Curso HTML 5 - Aula Inicial
PDF
Justificativas para adoção de um Sistema de Gerenciamento de Conteúdos na FAI
PPT
Introdução à Programação “para Web” de Carlos Bazilio
PDF
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
PDF
Alfresco ECM e Gestão Eletrônica de Documentos Open Source
Palestra Zend Framework na Campus Party 2011
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a internet
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDA
Web tools pt-br
Desenvovelndo Aplicações com PHP, AJAX e Y!UI Yahoo User Interface
Web Tools Pt Br
Administração de portais
Técnicas de Programação para a Web
Plataforma Android: Produtividade Além do SDK
Django - Desenvolvimento web ágil com Python
Curso PHP UNIFACS 2014.1 – Frameworks
F R A M E W O R K D J A N G O
Com vocês, Django!
Curso HTML 5 - Aula Inicial
Justificativas para adoção de um Sistema de Gerenciamento de Conteúdos na FAI
Introdução à Programação “para Web” de Carlos Bazilio
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Alfresco ECM e Gestão Eletrônica de Documentos Open Source
Anúncio

Mais de Marcos Thomaz (10)

PDF
Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...
PPTX
Hydros - Apresentação para Investidores
PPTX
Minimax e corte alfa beta
PPTX
Palestra Apresentando Python e Suas Aplicações
PPTX
Curso de PostgreSQL: Um pouco Além dos Comandos
PPTX
MongoDB: Uma forma diferente de pensar no desenvolvimento
PDF
Postgre sql +python
PDF
Criação de log de ações através do banco
PDF
Criação de log de ações através do banco - PostgreSQL
PDF
Postgresql +python
Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...
Hydros - Apresentação para Investidores
Minimax e corte alfa beta
Palestra Apresentando Python e Suas Aplicações
Curso de PostgreSQL: Um pouco Além dos Comandos
MongoDB: Uma forma diferente de pensar no desenvolvimento
Postgre sql +python
Criação de log de ações através do banco
Criação de log de ações através do banco - PostgreSQL
Postgresql +python

Último (12)

PDF
Metodologias ágeis - Slides - aulas 1 a 5.pdf
PPTX
AULA DE HTML E CSS PARA INICIANTES EM INFORMÁTICA
PPTX
TURMA modelo de modelo apresentação 4DE.pptx
PDF
CORPO, ALMA E ESPÍRITO cura inteiror.pdf
PPTX
Classifirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcação_IPAQ.pptx
PDF
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
PDF
Certificado de Conclusão Jornada Inteligência Artificial
PDF
A sua pontuação aumenta ao escolher uma categoria, preencher uma descrição lo...
PDF
Apostila_de_Laboratorio_de_Quimica_Inorg.pdf
PPTX
Fundamentos do Desenvolvimento Web. Fundamentos do Desenvolvimento Web.Fundam...
PDF
Agosto-Lilas-Conscientizacao-e-Combate-a-Violencia-contra-a-Mulher.pdf
PDF
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
Metodologias ágeis - Slides - aulas 1 a 5.pdf
AULA DE HTML E CSS PARA INICIANTES EM INFORMÁTICA
TURMA modelo de modelo apresentação 4DE.pptx
CORPO, ALMA E ESPÍRITO cura inteiror.pdf
Classifirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcação_IPAQ.pptx
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
Certificado de Conclusão Jornada Inteligência Artificial
A sua pontuação aumenta ao escolher uma categoria, preencher uma descrição lo...
Apostila_de_Laboratorio_de_Quimica_Inorg.pdf
Fundamentos do Desenvolvimento Web. Fundamentos do Desenvolvimento Web.Fundam...
Agosto-Lilas-Conscientizacao-e-Combate-a-Violencia-contra-a-Mulher.pdf
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...

Conhecendo o Django

  • 1. Data: 04 de dezembro de 2014 Marcos Thomaz da Silva Conhecendo
  • 2. Django • Criado por Jacob Kaplan Moss e Adrian Holovaty • Lançado em 2003 • Django Reinhardt • Atualmente na versão 1.7.1
  • 3. Mas o que é Django???
  • 4. O que é Django? • Framework Web de alto nível “Um framework (ou arcabouço) em desenvolvimento de software, é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica”. Fayad e Schmidt “Frameworks são projetados com a intenção de facilitar o desenvolvimento de software, habilitando designers e programadores a gastarem mais tempo determinando as exigências do software do que com detalhes de baixo nível do sistema”
  • 5. O que o Django NÃO é? • Não é um CMS • Não é uma biblioteca • Não é um “programa”
  • 6. Características do Django • Desenvolvido em Python – Criada por Guido van Rossun – Lançada em 1991 – Linguagem de Alto Nível – Interpretada e Interativa – Gera Bytecodes – Produtividade e Manutenção de Código – Multiplataforma (nativa Linux) – Multiparadigma (procedural, OO, funcional) – Open Source – Monty Python Flying Circus
  • 9. O que mais • Focado no desenvolvimento ágil • Conceito DRY – Don’t Repeat Yourself • Plugabilidade • MTV / MVC • Automatização de Tarefas • Foco no Negócio • Open Source
  • 10. O que preciso saber... • Pequenas Aplicações: – Conjunto HTML / CSS / Javascript – Servidor Web / Aplicações – Formulários e Validação – Persistência de Dados
  • 11. • Médias e Grandes Aplicações: – Engine de templates – Mapeador de URL’s – Controle de Sessões – Autenticação – Testes e Metodologias Ágeis – Cache – Ajax
  • 12. E agora? Será que esse tal Django atende a todos estes requisitos?
  • 14. Recursos do Django • Arquivo Centralizado de Configurações – Ativação de Ambiente de Depuração – “Plugins” vinculados – Conexão com Banco de Dados – Módulos Intermediários – Idioma
  • 15. Recursos do Django • Servidor web embutido; • Módulos para Deploy nos principais servidores Web – mod_python – WSGI /mod_wsgi – FastCGI – SCGI - Simple Common Gateway Interface – AJP - Apache JServ Protocol / Tomcat
  • 16. Recursos do Django – Servidores Web/ Aplicações
  • 17. Recursos do Django • Módulo completo de formulários – Geração automática baseada em modelos – Validação centralizada – Integração com banco de dados
  • 18. Recursos do Django • ORM (Mapeamento Objeto Relacional) – Geração de Banco de Dados – Engenharia Reversa de Banco – Migrations – Diversos Bancos de Dados (PostgreSQL, MySQL, Oracle, SQLite, DB2, SQLServer, Firebird/Interbase) – Conexões Multibancos
  • 20. Recursos do Django • Sistema completo de Templates – Sistema Próprio de Templates – Integração com Outros Motores de Templates – Separação de Regras de Negócio e Templates – Tags, Filtros e Funções Especiais – Possibilidade de Extensão de Filtros e Funções
  • 21. Recursos do Django – Templates
  • 22. Recursos do Django • Mapeador de URL’s (URL Dispatcher) – URL’s Limpas e Elegantes – Definição de URL’s – Utilização de Expressões Regulares – Mapeamento de URL’s por Módulo
  • 23. Recursos do Django – URL’s
  • 24. Recursos do Django • Gerenciamento Completo de Sessões – Em arquivo – Em bancos de dados relacional – Em banco de dados especial (redis/memcached) – Controle de expiração de sessões • Ao fechar o navegador • Nunca • Data específica
  • 25. Recursos do Django • Módulo completo de Autenticação – Módulo embutido de autenticação – Possibilidade de Extensão de Modelo de Usuários – Integração dom Facebook, Twitter, Google+ – Bases LDAP / Active Directory – Recuperação de Senhas
  • 26. Recursos do Django • Módulos de Testes e Metodologias Ágeis – TDD – Test Driven Development – BDD – Behavior Driven Development
  • 27. Recursos do Django • Módulos Ajax para aplicações Ricas • Editores WYSIWYG • Web Components • API’s Rest e SOAP
  • 28. Recursos do Django • Cache – Em memória – Em arquivos – Em bancos de dados (Relacionais e NoSQL) – Por Requisição – Por Consulta – Por Página
  • 29. Recursos do Django • Interface Administrativa - Admin – Aplicação Plugável – Interface e estruturas criadas (quase) automaticamente – Possibilidade de Personalização – Pequenos sistemas e backends em minutos – Excelente produtividade – Motivo de Confusão: Django = Programa
  • 33. E mais • Criação de Log de Aplicações • Internacionalização • Criação Automática de Sitemaps • Integração com Redes Sociais • Herança de Modelos • Geoprocessamento (GeoDjango) • Recursos de Performance • Envio de Emails
  • 34. E ainda mais • Geração de Feed de Notícias (RSS/Atom) • Paginação • Módulo de Mensagens • Serializações (XML, JSON, YAML) • Arquivos Estáticos • Signals • Generic Relations • Comunidade Brasileira Participativa • Muito Material na Internet • Excelente Documentação
  • 35. Não contavam com minha astúcia!
  • 36. Lista de Sites Úteis Relacionados • Site Oficial da Linguagem Python: https://www.python.org/ • Site Oficial do Framework Django: https://www.djangoproject.com/ • Lista de Sites Feitos usando Django: https://www.djangosites.org/ • Site com lista de diversas Aplicações Plugáves (Plugins) para o Django: • https://www.djangopackages.com/packages/p/django-pluggables/ • Github – Projetos e Aplicações Plugáveis Django: https://github.com/search?q=django • Site de Depoimentos do Porque Usar Django: https://ericstk.wordpress.com/2014/03/17/por-que-escolher-django/ • Grupo Python Acre no Facebook (Ainda Iniciando): https://www.facebook.com/groups/1504095973195084/
  • 38. Pequeno Trecho de Código • Modelo (Banco de Dados)
  • 39. Pequeno Trecho de Código • Views (camada de Controle / Controller)
  • 40. Pequeno Trecho de Código • Template (Camada de Visualização) – base.html
  • 41. Pequeno Trecho de Código • Template (Camada de Visualização) – mensagem.html
  • 42. Pequeno Trecho de Código • Template (Camada de Visualização) – Resultado
  • 43. Pequeno Trecho de Código • Template (Camada de Visualização) – Resultado
  • 44. O que fazer com Django? • Sites • Aplicações Web • Serviços Web • API’s • Globo é um dos cases de sucesso : – 45 milhões de acesso/dia – 32 mil acessos / minuto – 10 milhões de visitantes únicos / dia