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

Conhecendo o Django

  • 1.
    Data: 04 dedezembro de 2014 Marcos Thomaz da Silva Conhecendo
  • 2.
    Django • Criado porJacob 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 oDjango 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
  • 7.
  • 8.
  • 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 precisosaber... • Pequenas Aplicações: – Conjunto HTML / CSS / Javascript – Servidor Web / Aplicações – Formulários e Validação – Persistência de Dados
  • 11.
    • Médias eGrandes 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á queesse tal Django atende a todos estes requisitos?
  • 13.
  • 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
  • 19.
  • 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
  • 30.
  • 31.
  • 32.
  • 33.
    E mais • Criaçãode 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 comminha 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/
  • 37.
  • 38.
    Pequeno Trecho deCódigo • Modelo (Banco de Dados)
  • 39.
    Pequeno Trecho deCódigo • Views (camada de Controle / Controller)
  • 40.
    Pequeno Trecho deCódigo • Template (Camada de Visualização) – base.html
  • 41.
    Pequeno Trecho deCódigo • Template (Camada de Visualização) – mensagem.html
  • 42.
    Pequeno Trecho deCódigo • Template (Camada de Visualização) – Resultado
  • 43.
    Pequeno Trecho deCódigo • Template (Camada de Visualização) – Resultado
  • 44.
    O que fazercom 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
  • 45.