Você está na página 1de 25

O framework Django

Eduardo Steiner

   

eduardo.steiner@gmail.com
Origem
   Django é um framework de desenvolvimento 
rápido para web, escrito em Python, que utiliza 
o padrão MVC (model­view­controller). Foi 
criado originalmente como sistema para 
gerenciar um site jornalístico na cidade de 
Lawrence, no Kansas. Tornou­se um projeto de 
código aberto e foi publicado                          
sob a licença BSD em 2005.                                
   
O nome Django foi                                       
inspirado no músico                                         
 
de jazz Django Reinhardt. 
DRY
● Django utiliza o princípio DRY (Don't Repeat 
Yourself), que busca reduzir a duplicação e 
repetição de código, e aumentar o 
reaproveitamento do código.

   
O padrão MVC (model­view­controller)
● Separa a aplicação web em 3 camadas:
– Dados
– Visão
– Controle

   
Projeto x Aplicação

   
Projeto x Aplicação

● Uma app é uma aplicação web que faz algo. 
Ex: sistema de notícias, enquetes, cadastro de 
usuários.
● Um projeto é uma coleção e configuração de 
app para um site em particular. Um projeto 
pode contar várias apps e uma app pode estar 
contida em vários projetos.

   
Comando para criar projetos
● Projeto:  djangoadmin.py startproject meuprojeto
– Irá criar um diretório, contendo 4 arquivos:
● __init__.py   > Um arquivo vazio que diz ao python que esse 
diretório deve ser considerado como um pacote Python.
● manage.py  > Um utilitário de linha de comando que permite 
a você interagir com esse projeto de várias maneiras.
● settings.py   > Definições/configuração para esse projeto.
● urls.py          > As declarações de URLs para esse projeto; 
uma "tabela de conteúdos" para o seu site movido a Django.

   
Comando para criar aplicações
● Aplicação: python manage.py startapp contatos
– O comando deve ser dado dentro do diretório do
projeto, e ao se executá-lo será criado um diretório com
o nome da aplicação contendo 3 arquivos:
● __init__.py > Um arquivo vazio que diz ao python
que esse diretório deve ser considerado como um
pacote Python.
● models.py > Modelo. Responsável pelos dados da
aplicação
● views.py > Visão. Responsável pela interface da
aplicação.

   
Linguagem de templates

   
Linguagem de templates
   A linguagem de template do Django foi 
designada para estabelecer um equilíbrio entre 
poder e facilidade. Ele foi criada para ser 
confortável para aqueles que trabalham com 
HTML sem perder o flexibilidade no tratamento 
das respostas para a aplicação.

   
Linguagem de templates
● Template
– O template é um arquivo texto simples. Ele pode 
gerar um arquivo baseado em texto formatado 
(HTML, XML, CSV, etc.).
– O template contem variáveis, quando o template é 
avaliado essas variáveis são substituídas por 
valores, e tags que controlam a lógica do template.

   
Linguagem de templates
● Exemplo (listar os nomes de contatos):
         

        {% for contato in contatos %}  
         {{ contato.nome }}
         {% endfor %}

   
Mapeamento objeto relacional

   
Mapeamento ObjetoRelacional

● Os dados são definidos através de uma classe 
em Python
● Há uma API rica e dinâmica para manipulação 
de dados
● Mas também é possível utilizar SQL

   
Mapeamento ObjetoRelacional
from django.db import models
 

class Contatos(models.Model):
    nome  = models.CharField(maxlength=200)
    telefone = models.CharField(maxlength=200)

   
Criação das tabelas no seu BD
● Para criar as tabelas no seu banco de dados, 
você deve rodar o camando: 

python manage.py syncdb

   
Interface de Administração

   
Interface de Administração
● Deve­se configurar o settings.py
● Deve­se adicionar a url de administração na url.py
● Deve­se adicionar a classe Admin, no models.py 
da aplicação que se deseja “administrar”
        class Contatos(models.Model):
        (...)
            class Admin:
                pass
   
        (...)
Interface de Administração

   
Servidor de desenvolvimento
● Django vem com um servidor de 
desenvolvimento portanto, é possível  se 
desenvolver coisas rapidamente, sem ter que 
lidar com a configuração de um servidor web 
de produção ­­ como o Apache ­­ até que você 
esteja pronto para a produção.

   
Servidor de desenvolvimento
● Para rodar o servidor de desenvolvimento:
python manage.py runserver

   
O que mais?
● É possível desenvolvimer guiado a testes 
(Testes documentais (doctest), e Testes de 
unidade (unittest))
● Django tem suporte para aplicações multi­
linguagens
● Biblioteca de manipulações de formulários 
(newsForm)
● URLs dos sites são organizadas e elegantes
● Possibilidade de criar sites com feeds, 
   
autenticação, site maps
Links
● www.djangoproject.com
● www.djangobrasil.org
● www.djangobook.com

   
Fontes
● www.djangoproject.com
● www.djangobrasil.org
● www.djangobook.com
● www.andrewsmedina.com
● http://rfdev.org/2008/02/16/django­templates­editad
● Wikipedia

   
FIM
Site: http://pet.inf.ufsc.br
  Email: pet@inf.ufsc.br