Iniciando com Django - Desenvolvendo com esse poderoso Framework - Parte I
by Leandro Martins on dez.01, 2008, under Django, Framework, Python
Olá Pessoal, nesse tutorial vamos ver como desenvolver um projeto, com as seguintes características, usando o framework Django e o banco de dado MySql.
- Área para cadastro, edição, exclusão e visualização ou também conhecido como CRUD;
- Login de acesso, com níveis de permissão;
- Histórico de ações;
- Tela de consulta, para visualizar os dados cadastrados, fora da área restrita.
Uma visão do framework:
O Django foi desenvolvido utilizando a linguagem python. O framework é baseado no padrão de projeto (design pattern) MVC, mas com uma pequena mudança pelo seus desenvolvedores, ao inves de usar as 3 camadas do Model-View-Controller proposta pelo design pattern MVC, eles optaram por usar o Model-Template-View(MTV).
- Model: Camada que funciona como objeto relacional, ou seja é aqui que vai ficar as definições de campo de sua tabela;
- Template: Camada que realiza a função de mostrar os dados dinamico para o usuário, basicamente composta por pseudo código python e html;
- View: Camada responsavel por tratar as regras de negocio entre o Model e Template.
Uma observação importante para quem já utilizou framework para PHP, é que o Django trata o programa em si, como se fosse um projeto, e suas aplicações, como se fosse os módulos do programa.
Instalação:
Para começamos, vamos precisar instalar as seguintes ferramentas:
Para Linux:
Normalmente, o python já vem instalado no linux. Para confirmar digite no console:
Python 2.5.x
Caso não tenha, digite no console:
Para a instalação, acesse o site do projeto, e baixe o framework Django.
Para os usuários do Debian, pode ser utilizado esse commando:
ou utilizando o setup do django:
Extração dos arquivos:
$ sudo python setup.py install
Para instalação do servidor Mysql, utilize o seguinte comando.
Observação: Para o linux, assim como para o windows, existe um projeto chamado DjangoStack, que cria um ambiente para rodar sua aplicação. Nesse exemplo vamos usar o servidor de desenvolvimento do próprio django, mas para produção é aconselhável rodar sua aplicação com um servidor mais seguro, como Apache + mod_python.
Para Windows:
Existe um pacote de instalação parecido com o conhecido LAMP/XAMP, chamado DjangoStack, que instala na maquina, os seguintes servidores: Python, Apache, MySql e SqlLite. E pode ser obtido no link abaixo.
DjangoStack
http://bitnami.org/stack/djangostack
Para mais informações, basta acessar o site do projeto: http://bitnami.org/stack/
Iniciando um projeto Django
Vamos iniciar nosso projeto, construindo a área de administração ou admin das aplicações. Primeiramente vamos escolher um lugar para hospedar temporariamente nosso projeto, no exemplo optei por /home/leandro/dj-app/ mas poderia ser outro lugar. O nome do projeto pode ser qualquer nome, desde que contenha somente letras, número e underline. Após escolher o lugar vamos criar um novo projeto, usando o comando:
Com a estrutura do nosso projeto pronto, vamos rodar o servidor de desenvolvimento do django, para testar se está tudo correto. Para isso usamos o seguinte comando:
Validating models…
0 errors found.
Django version 0.96, using settings ‘tuto_app.settings’
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Podemos ver que assim que rodamos o servidor, ele já faz uma validação nos models do projeto, para verificar se existe algum erro, caso algum erro é achado, ele mostra uma mensagem. Também é mostrado o endereço para acessar a aplicação via web. Esse endereço é só acessível da maquina local, para liberar os acessos de outros computadores, você pode rodar o servidor com o seguinte comando.
Para parar com o servidor, basta apenas apertar a combinação de Ctrl + C.
Criando o banco de dados
Para criar o banco de dados, conecte-se ao banco, e execute os comandos abaixo.
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.0.51a-3ubuntu5.1 (Ubuntu)
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> create database tuto_app;
Query OK, 1 row affected (0.00 sec)
Configurando o Settings.py
Vamos configurar o arquivo settings.py, do nosso projeto. Esse arquivo é responsável, pela configuração do projeto, podendo ser configurado, os parâmetros do banco de dados, o time zone, a linguagem, a internacionalização, as aplicações instaladas no projeto, e entre outras configurações. Vamos definir algo parecido com a configuração abaixo.
DATABASE_ENGINE = ‘mysql’
DATABASE_NAME = ‘nome_do_db’
DATABASE_USER = ’seu_usuário’
DATABASE_PASSWORD = ’sua_senha’
#Time Zone
TIME_ZONE = ‘America/Sao_Paulo’
#Linguagem
LANGUAGE_CODE = ‘pt-br’
#Internacionalização
USE_I18N = True
A configuração INSTALLED_APPS, deve ser atualizada a cada nova aplicação colocada no projeto. Ela indica para o django, quais aplicações devem ser carregadas.
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.sites’
)
Ativando o Admin
Vamos ativar a área de admin, que o django já disponibiliza para gente, sem precisar fazer muita configuração. Para isso basta indicar no arquivo settings.py, que aplicação está instalado, conforme segue abaixo.
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.sites’,
‘django.contrib.admin’
)
Agora no arquivo urls.py, temos que descomentar algumas linhas que fazem parte da ativação do admin.
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns(”,
(r’^admin/(.*)’, admin.site.root),
)
Depois de tudo configurado e ativado o admin, vamos executar o comando responsável por criar as tabelas no banco de dados, o superusuário do admin e verifica se existe algum erro nos models do projeto. Esse comando deve ser executado, toda vez que alguma aplicação for instalada, para ele criar as tabelas no banco. Abaixo segue execução do comando, podemos notar que ele solicita alguns dados do superusuário, esses dados é solicitado somente na primeira vez do comando syncdb.
Creating table auth_permission
Creating table auth_group
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log
You just installed Django’s auth system, which means you don’t have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (Leave blank to use ‘root’): admin
E-mail address: seu_email@dominio.com.br
Password:
Password (again):
Superuser created successfully.
Installing index for auth.Permission model
Installing index for auth.Message model
Installing index for admin.LogEntry model
leandro@brain-nt:~/lab/dj-app/sgd_b$
Para acessar o admin, basta ir ao browser e digitar o endereço http://127.0.0.1:8000/admin e entrar com usuário e senha.
Nessa primeira parte você viu como é facíl desenvolver um painel de administração com recursos de login, níveis de permissões e histórico de ações, usando o framework django. Na próxima parte do tutorial você verá como desenvolver aplicações para o seu projeto.
Até a próxima.