mini curso introdutório ao django

51
Mini-curso introdutório ao Django

Upload: vinicius-mendes

Post on 26-May-2015

4.321 views

Category:

Technology


6 download

DESCRIPTION

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

TRANSCRIPT

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]