O documento apresenta um mini-curso introdutório ao framework Django para desenvolvimento web com Python. Ele aborda conceitos como criação de projetos e aplicações Django, models, views, templates, administração, autenticação e internacionalização.
2. Apresentação
Mini-curso introdutório ao framework Django;
●
Desenvolver um blog utilizando o Django.
●
Meio
Código
3. Quem sou eu?
Formado em Engenharia de Computação pela
●
UFRN;
Estudante de Pós-Graduação em
●
Desenvolvimento de Sistemas Corporativos na
FARN;
Desenvolvedor de sistemas com interface web;
●
Um dos autores do blog Meio Código:
●
http://www.meiocodigo.com/;
Empresário, sócio da Solucione Sistemas.
●
Meio
Código
4. O que é Django
Um framework web desenvolvido com a
●
liguagem Python;
Padrão MVC;
●
Ênfase em reusabilidade e plugabilidade;
●
Desenvolvimento ágil;
●
Baseado no conceito DRY;
●
Open source.
●
Meio
Código
7. O que é Python
Linguagem de programação de alto nível;
●
Interpretada, interativa, orientada a objetos;
●
Tipagem dinâmica e forte;
●
Código legível;
●
Indentação obrigatória.
●
Meio
Código
10. Settings
Localize o arquivo settings.py;
●
Atribua as seguintes variáveis
●
DATABASE_ENGINE = 'sqlite3'
–
– DATABASE_NAME = 'meu_blog.db'
Meio
Código
11. Aplicações em Django
Fazem uma tarefa e fazem bem;
●
Plugabilidade;
●
Aplicações plugáveis desenvolvidas pela
●
comunidade;
http://www.djangopluggables.com/
●
Meio
Código
13. Models
Camada de abstração do banco de dados;
●
São classes que herdam de
●
django.db.models.Model;
Definem as entidades do sistema;
●
Possuem campos que representam os campos
●
do banco de dados;
Vários campos padrões, mas é simples criar
●
um novo campo.
Meio
Código
18. Fixtures
Dados iniciais da aplicação;
●
Úteis para que a aplicação já seja funcional
●
mesmo após ter sido instalada.
Meio
Código
19. Django Admin
Aplicação plugável que vem por padrão no
●
framework;
Gera uma interface administrativa com muito
●
pouco trabalho;
Acelera a produtividade mas perde em
●
flexibilidade.
Meio
Código
20. Configurando o Django Admin
Adicione a aplicação django.contrib.admin às
●
INSTALLED_APPS;
Localize o arquivo urls.py;
●
Descomente as seguintes linhas:
●
# from django.contrib import admin
–
– # admin.autodiscover()
– # (r'^admin/', include(admin.site.urls)),
Meio
Código
21. Registrando nosso model no Admin
Crie um arquivo chamado admin.py dentro da
●
pasta da aplicação blog;
Sincronize o banco de dados.
●
Meio
Código
22. Views
Recebem as requisições dos usuários e
●
retornam uma resposta a essa requisição;
Respostas podem ser páginas HTML, imagens,
●
documentos ou qualquer outro formato de
arquivo;
Meio
Código
23. Generic views
Views genéricas disponibilizadas junto com o
●
framework;
Realizam ações básicas: listar, detalhar,
●
cadastrar, editar, excluir;
Meio
Código
24. Usando as generic views no blog
Abra o arquivo urls.py da pasta do projeto e
●
adicione o seguinte padrão à variável
urlpatterns: (r'^blog/', include('blog.urls')),
Crie um arquivo chamado urls.py dentro da
●
pasta da aplicação blog.
Meio
Código
25. Templates
Linguagem simples para desenvolvimento de
●
templates;
Utiliza template tags e template filters;
●
Facilidade de criação de novas tags e filters;
●
Tag block proporciona ótima reusabilidade de
●
códigos de templates.
Meio
Código
26. Localização dos templates
É baseada na variável TEMPLATE_LOADERS.
●
Default:
1.Pastas especificadas na variável
TEMPLATE_DIRS do settings.py;
2.Pasta templates dentro das aplicações
instaladas.
Meio
Código
27. Configurando uma pasta de templates
Crie uma pasta chamada templates na raiz do
●
projeto;
Abra o settings.py e adicione o seguinte
●
código:
Meio
Código
28. Criando os templates
Criar os seguintes templates:
●
base.html;
–
– blog/artigo_list.html;
– blog/artigo_detail.html.
Meio
Código
29. Servindo arquivos estáticos
Não deve ser servido pelo django, apesar de
●
ser possível;
settings.py
●
urls.py
●
Meio
Código
31. Template Context Processors
São configurados pela variável
●
TEMPLATE_CONTEXT_PROCESSORS do
settings.py;
Adicionam variáveis aos templates.
●
Meio
Código
32. Autenticação - django.contrib.auth
Aplicação plugável que é distribuída junto com
●
o django;
Oferece código pronto para criação de um
●
módulo de autenticação;
Baseada em usuários, grupos e permissões.
●
Meio
Código
34. Adicionando autenticação (2)
Adicione as seguinte linhas ao settings.py:
●
LOGIN_REDIRECT_URL = '/'
–
– LOGIN_URL = '/login/'
Crie o template login.html;
●
Altere o template base.html:
●
Meio
Código
35. Escrever, editar e excluir
Altere o blog/urls.py para ficar assim:
●
Meio
Código
36. Criando os templates
Criar os seguintes templates:
●
blog/artigo_form.html
–
– blog/artigo_confirm_delete.html
Alterar o template blog/artigo_detail.html:
●
Alterar o template base.html:
●
Meio
Código
37. django.contrib.flatpages
Aplicação plugável que é distribuída junto com
●
o django;
Viabiliza a criação de páginas planas, sem
●
conteúdo dinâmico, através de uma interface
administrativa.
Meio
Código
38. Configurando as FlatPages
Adicione django.contrib.flatpages ao
●
INSTALLED_APPS;
Adicione
●
django.contrib.flatpages.middleware.FlatpageF
allbackMiddleware;
Sincronize o banco de dados;
●
Crie o template flatpages/default.html.
●
Meio
Código
39. Middlewares
Possibilitam a execução de ações entre a
●
requisição do usuário e as views.
Meio
Código
40. Criando a página 'Sobre'
Entre no admin (/admin/);
●
Clique no link 'Add' ao lado de 'Flat pages';
●
Informe os seguintes dados:
●
URL: /sobre/
–
– Title: Sobre
– Conteúdo: <qualquer texto>
– Sites: example.com
Meio
Código
41. RSS - django.contrib.syndication
Aplicação plugável que é distribuída
●
juntamente com o django;
Possibilita a geração de feeds RSS facilmente.
●
Meio
Código
42. Configurando o Syndication
Adicione a seguinte linha ao urls.py:
●
from feeds import LatestEntries
–
Adicione o seguinte padrão ao urls.py:
●
Adicione a seguinte linha ao base.html:
●
Meio
Código
43. Criando a classe do feed
Crie um arquivo feeds.py:
●
Meio
Código
45. Comentários -
django.contrib.comments
Aplicação plugável que é distribuída junto com
●
o django;
Oferece uma API simples para possibilitar
●
comentários em qualquer Model.
Meio
Código
46. Configurando os comentários (1)
Adicione django.contrib.comments à variável
●
INSTALLED_APPS;
Adicione o seguinte padrão ao urls.py:
●
(r'comments/',
–
include('django.contrib.comment.urls')),
Sincronize o banco de dados.
●
Meio
Código