introdução ao framework django
DESCRIPTION
Seminário introdutório sobre Django com uma breve descrição de PythonTRANSCRIPT
![Page 1: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/1.jpg)
Framework para desenvolvimento Web
Eduardo Palma
![Page 2: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/2.jpg)
django?
• Framework open source para aplicações web• Padrão de arquitetura MVC• Escrito em python
![Page 3: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/3.jpg)
python?
• Linguagem de programação multiparadigma de alto nível• Multiplataforma• Open source• Interpretada• Tipagem dinâmica• Filosofia enfatiza a facilidade de leitura• Identação é importante
![Page 4: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/4.jpg)
python
• Criada por Guido van Rossum• Primeira versão em 1991• Inpirada na linguagem ABC• Originalmente desenvolvida para o S.O. Amoeba criado por Andrew S. Tanenbaum• Atualmente na versão 3.1
![Page 5: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/5.jpg)
Hello World
# programa em pythonprint 'Hello World!'
![Page 6: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/6.jpg)
Identação
#imprime de 101 a 110for numero in range(1,11): soma = 100 + numero print somaprint 'Fim'
![Page 7: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/7.jpg)
Quem usa python?
![Page 8: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/8.jpg)
django
• Criado em 2003 por desenvolvedores do jornal Lawrence Journal-World
• Filosofia de desenvolvimento rápido para um ambiente com prazos apertados
• Código limpo e manutenível• Primeira versão pública lançada em 2005
![Page 9: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/9.jpg)
Django Reinhardt
![Page 10: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/10.jpg)
Objetivo
• Desenvolvimento de aplicações web complexas movidas a bancos de dados
• Enfatiza o reuso e a modularidade de componentes• Segue o princípio DRY (Don’t Repeat Yourself)• Utiliza python para tudo, tanto para a lógica, configurações e
modelos de dados
![Page 11: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/11.jpg)
Desempenho
![Page 12: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/12.jpg)
Arquitetura
• Componente de mapeamento objeto-relacional• URL dispatcher baseado em expressões regulares• Sistema de Views para processamento de requisições• Sistema de Templates para criação das páginas
![Page 13: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/13.jpg)
Instalação
• Depois de baixar e descompactar o django:
C:\django\>python setup.py install
• Para criar um projeto:
C:\>django-admin.py startproject meuprojeto
• Para criar uma aplicação:
C:\meuprojeto\>python manage.py startapp meusite
![Page 14: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/14.jpg)
Servidor para desenvolvimento
![Page 15: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/15.jpg)
Admin
![Page 16: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/16.jpg)
Model
from django.db import models
class Pessoa(models.Model): nome = models.CharField(max_length=30) sobrenome = models.CharField(max_length=30) login = models.CharField(max_length=20, unique=True) password = models.CharField(max_length=20) email = models.EmailField(max_length=60) data_cadastro = models.DateTimeField(auto_now_add=True)
• Um model é uma classe que herda da classe models.Model• Cada classe é uma tabela no banco de dados• Cada propriedade desta classe é uma coluna desta tabela• Faz o mapeamento objeto-relacional
![Page 17: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/17.jpg)
View
• As views são funções responsáveis pelo processamento de requisições
• Retornam valores para a template (página html)• Cada view responde à uma URL específica
def pagina_principal(request): return HttpResponse('Hello, World!')
![Page 18: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/18.jpg)
URL dispatcher
• Faz o mapeamento entre URLs e views• Utiliza expressões regulares para capturar diferentes padrões
de URL facilmente• Permite a captura de um número ilimitado de parâmetros na
URL, de forma anônima ou nomeada
urlpatterns = patterns('aggregator.web.views',(r'^$', 'index'), (r'^pagina/(?P<page_num>\d*)', 'main'),(r'^artigo/(?P<article_id>\d+)-(\w*)', 'article'),(r'^adicionar_artigo/', 'add_article'), (r'^enviar_artigo/', 'send_article'),(r'^registro/', 'register'),)
![Page 19: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/19.jpg)
Template
• Produz a página HTML final• Utiliza uma linguagem de marcação própria• Possui tags extensíveis tanto para construções lógicas como
para a formatação visual dos dados• Recebe dados da view e os utiliza para montar a página
<form action="/cadastro/" method="post"> {{ errors }} {% for field in form %} {{ field.errors }} {{ field.label_tag }}: <br /> {{ field }} {{ field.help_text }} {% endfor %}<input type="submit" value="Registrar-se" />
![Page 20: Introdução ao framework Django](https://reader033.vdocuments.com.br/reader033/viewer/2022061211/5492e010b47959962d8b55a5/html5/thumbnails/20.jpg)
Settings
• Arquivo central que mantém todas as configurações de uma aplicação django
• Utiliza python ao invés de uma sintaxe própria
DEBUG = TrueTEMPLATE_DEBUG = DEBUGSESSION_COOKIE_AGE = 604800
DATABASE_ENGINE = 'django.db.backends.sqlite3' DATABASE_NAME = 'c:/aggregator/aggregatordb' DATABASE_USER = ''DATABASE_PASSWORD = ''
LANGUAGE_CODE = 'pt-br'TIME_ZONE = 'America/Sao_Paulo'