51
Mini-curso introdutório ao Django

Mini curso introdutório ao Django

Embed Size (px)

DESCRIPTION

Mini curso introdutório ao framework Django ministrado no dia 25 de abril de 2009 no FLISOL em Natal/RN.

Citation preview

Page 1: Mini curso introdutório ao Django

Mini-curso introdutório ao Django

Page 2: Mini curso introdutório ao Django

MeioCódigo

Apresentação

● Mini-curso introdutório ao framework Django;● Desenvolver um blog utilizando o Django.

Page 3: Mini curso introdutório ao Django

MeioCódigo

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.

Page 4: Mini curso introdutório ao Django

MeioCódigo

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.

Page 5: Mini curso introdutório ao Django

MeioCódigo

Funcionamento

Page 6: Mini curso introdutório ao Django

MeioCódigo

Requisições em Django

Page 7: Mini curso introdutório ao Django

MeioCódigo

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.

Page 8: Mini curso introdutório ao Django

MeioCódigo

Criando um projeto

Page 9: Mini curso introdutório ao Django

MeioCódigo

Tela inicial do Django

Page 10: Mini curso introdutório ao Django

MeioCódigo

Settings

● Localize o arquivo settings.py;● Atribua as seguintes variáveis

– DATABASE_ENGINE = 'sqlite3'– DATABASE_NAME = 'meu_blog.db'

Page 11: Mini curso introdutório ao Django

MeioCódigo

Aplicações em Django

● Fazem uma tarefa e fazem bem;● Plugabilidade;● Aplicações plugáveis desenvolvidas pela

comunidade;● http://www.djangopluggables.com/

Page 12: Mini curso introdutório ao Django

MeioCódigo

Criando uma aplicação

$ ./manage.py startapp blog

Page 13: Mini curso introdutório ao Django

MeioCódigo

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.

Page 14: Mini curso introdutório ao Django

MeioCódigo

Criando um model

Page 15: Mini curso introdutório ao Django

MeioCódigo

Instalando a aplicação

● Abra o settings.py;● Altere a variável INSTALED_APPS para conter

a nova aplicação.

Page 16: Mini curso introdutório ao Django

MeioCódigo

Gerando o banco de dados

Page 17: Mini curso introdutório ao Django

MeioCódigo

Criando um superusuário

Page 18: Mini curso introdutório ao Django

MeioCódigo

Fixtures

● Dados iniciais da aplicação;● Úteis para que a aplicação já seja funcional

mesmo após ter sido instalada.

Page 19: Mini curso introdutório ao Django

MeioCódigo

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.

Page 20: Mini curso introdutório ao Django

MeioCódigo

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)),

Page 21: Mini curso introdutório ao Django

MeioCódigo

Registrando nosso model no Admin

● Crie um arquivo chamado admin.py dentro da pasta da aplicação blog;

● Sincronize o banco de dados.

Page 22: Mini curso introdutório ao Django

MeioCódigo

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;

Page 23: Mini curso introdutório ao Django

MeioCódigo

Generic views

● Views genéricas disponibilizadas junto com o framework;

● Realizam ações básicas: listar, detalhar, cadastrar, editar, excluir;

Page 24: Mini curso introdutório ao Django

MeioCódigo

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.

Page 25: Mini curso introdutório ao Django

MeioCódigo

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.

Page 26: Mini curso introdutório ao Django

MeioCódigo

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.

Page 27: Mini curso introdutório ao Django

MeioCódigo

Configurando uma pasta de templates

● Crie uma pasta chamada templates na raiz do projeto;

● Abra o settings.py e adicione o seguinte código:

Page 28: Mini curso introdutório ao Django

MeioCódigo

Criando os templates

● Criar os seguintes templates:

– base.html;– blog/artigo_list.html;– blog/artigo_detail.html.

Page 29: Mini curso introdutório ao Django

MeioCódigo

Servindo arquivos estáticos

● Não deve ser servido pelo django, apesar de ser possível;

● settings.py

● urls.py

Page 30: Mini curso introdutório ao Django

MeioCódigo

Adicionando mais cor ao blog

● Alterar o template base.html:

Page 31: Mini curso introdutório ao Django

MeioCódigo

Template Context Processors

● São configurados pela variável TEMPLATE_CONTEXT_PROCESSORS do settings.py;

● Adicionam variáveis aos templates.

Page 32: Mini curso introdutório ao Django

MeioCódigo

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.

Page 33: Mini curso introdutório ao Django

MeioCódigo

Adicionando auntenticação (1)

● Altere o urls.py para:

Page 34: Mini curso introdutório ao Django

MeioCódigo

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:

Page 35: Mini curso introdutório ao Django

MeioCódigo

Escrever, editar e excluir

● Altere o blog/urls.py para ficar assim:

Page 36: Mini curso introdutório ao Django

MeioCódigo

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:

Page 37: Mini curso introdutório ao Django

MeioCódigo

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.

Page 38: Mini curso introdutório ao Django

MeioCódigo

Configurando as FlatPages

● Adicione django.contrib.flatpages ao INSTALLED_APPS;

● Adicione django.contrib.flatpages.middleware.FlatpageFallbackMiddleware;

● Sincronize o banco de dados;● Crie o template flatpages/default.html.

Page 39: Mini curso introdutório ao Django

MeioCódigo

Middlewares

● Possibilitam a execução de ações entre a requisição do usuário e as views.

Page 40: Mini curso introdutório ao Django

MeioCódigo

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

Page 41: Mini curso introdutório ao Django

MeioCódigo

RSS - django.contrib.syndication

● Aplicação plugável que é distribuída juntamente com o django;

● Possibilita a geração de feeds RSS facilmente.

Page 42: Mini curso introdutório ao Django

MeioCódigo

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:

Page 43: Mini curso introdutório ao Django

MeioCódigo

Criando a classe do feed

● Crie um arquivo feeds.py:

Page 44: Mini curso introdutório ao Django

MeioCódigo

Alterando a URL do site

Page 45: Mini curso introdutório ao Django

MeioCódigo

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.

Page 46: Mini curso introdutório ao Django

MeioCódigo

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.

Page 47: Mini curso introdutório ao Django

MeioCódigo

Configurando os comentários (2)

● Altere o blog/artigo_list.html:

Page 48: Mini curso introdutório ao Django

MeioCódigo

Configurando os comentários (3)

● Altere o blog/artigo_detail.html:

Page 49: Mini curso introdutório ao Django

MeioCódigo

Internacionalização

● Mudar idioma e formato de data;● Adicione as seguintes linhas ao settings.py:

– TIME_ZONE = 'America/Fortaleza'– LANGUAGE_CODE = 'pt-BR'– DATE_FORMAT = u'd/m/Y'

Page 50: Mini curso introdutório ao Django

MeioCódigo

Referências

● http://www.djangoproject.com/● http://www.python.org/● http://www.meiocodigo.com/● http://www.djangobrasil.org/● http://www.aprendendodjango.com/

Page 51: Mini curso introdutório ao Django

MeioCódigo

Duvidas?

[email protected]