Download - Conhecendo o Django

Transcript

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


Top Related