Framework para desenvolvimento Web Eduardo Palma
django? Framework open source para aplicações web Padrão de arquitetura MVC Escrito em python
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
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
Hello World # programa em python print  ' Hello World! '
Identação #imprime de 101 a 110 for numero in range(1,11): soma = 100 + numero print soma print 'Fim'
Quem usa python?
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
Django  Reinhardt
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
Desempenho
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
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
Servidor para desenvolvimento
Admin
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
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! ' )
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'),)
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=&quot;/cadastro/&quot; method=&quot;post&quot;> {{ errors }} {% for field in form %} {{ field.errors }} {{ field.label_tag }}: <br /> {{ field }} {{ field.help_text }} {% endfor %} <input type=&quot;submit&quot; value=&quot;Registrar-se&quot; />
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 = True TEMPLATE_DEBUG = DEBUG SESSION_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'

Introdução ao framework Django

  • 1.
  • 2.
    django? Framework opensource para aplicações web Padrão de arquitetura MVC Escrito em python
  • 3.
    python? Linguagem deprogramação multiparadigma de alto nível Multiplataforma Open source Interpretada Tipagem dinâmica Filosofia enfatiza a facilidade de leitura Identação é importante
  • 4.
    python Criada porGuido 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
  • 5.
    Hello World #programa em python print ' Hello World! '
  • 6.
    Identação #imprime de101 a 110 for numero in range(1,11): soma = 100 + numero print soma print 'Fim'
  • 7.
  • 8.
    django Criado em2003 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
  • 9.
  • 10.
    Objetivo Desenvolvimento deaplicaçõ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
  • 11.
  • 12.
    Arquitetura Componente demapeamento 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
  • 13.
    Instalação Depois debaixar 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
  • 14.
  • 15.
  • 16.
    Model from django.dbimport 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
  • 17.
    View As viewssã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! ' )
  • 18.
    URL dispatcher Fazo 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'),)
  • 19.
    Template Produz apá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=&quot;/cadastro/&quot; method=&quot;post&quot;> {{ errors }} {% for field in form %} {{ field.errors }} {{ field.label_tag }}: <br /> {{ field }} {{ field.help_text }} {% endfor %} <input type=&quot;submit&quot; value=&quot;Registrar-se&quot; />
  • 20.
    Settings Arquivo centralque mantém todas as configurações de uma aplicação django Utiliza python ao invés de uma sintaxe própria DEBUG = True TEMPLATE_DEBUG = DEBUG SESSION_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'