introdução ao framework django

20
Framework para desenvolvimento Web Eduardo Palma

Upload: eduardo-palma

Post on 14-Dec-2014

1.756 views

Category:

Technology


0 download

DESCRIPTION

Seminário introdutório sobre Django com uma breve descrição de Python

TRANSCRIPT

Page 1: Introdução ao framework Django

Framework para desenvolvimento Web

Eduardo Palma

Page 2: Introdução ao framework Django

django?

• Framework open source para aplicações web• Padrão de arquitetura MVC• Escrito em python

Page 3: Introdução ao framework Django

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

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

Hello World

# programa em pythonprint 'Hello World!'

Page 6: Introdução ao framework Django

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

Quem usa python?

Page 8: Introdução ao framework Django

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

Django Reinhardt

Page 10: Introdução ao framework Django

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

Desempenho

Page 12: Introdução ao framework Django

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

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

Servidor para desenvolvimento

Page 15: Introdução ao framework Django

Admin

Page 16: Introdução ao framework Django

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

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

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

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

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'