Utilizarei no meu exemplo, um sitema para gerenciar cds, dvds e livros de um colecionador.
O INÍCIO
Crie uma pasta para armazenar seus projetos, de preferência um lugar fácil para acessar via prompt (Ex. C:\Projetos). Para criar seu projeto vá até sua pasta de projetos e digite o comando:
django-admin.py startproject app
Neste exemplo, adoto por padrão o nome app para meu projeto. Mais a frente entrarei em detalhes sobre isso.
Ao executar o comando, na sua pasta de projetos será criada uma pasta com o nome do projeto escolhido e dentro dela 4 arquivos:
- __init__.py
Este arquivo não será utilizado por hora, mas ele serve para informar ao django que é uma pasta com conteúdo Python.
- manage.py
Este arquivo será utilizado mais a frente quando for criar as aplicações para o projeto
- settings.py
Este arquivo é o responsável por gerenciar todas as configurações do seu projeto. Entraremos em mais detalhes abaixo.
- urls.py
Este arquivo conterá todas as urls de nossas aplicações mapeadas para suas respectivas views.
O SETTINGS.PY
Abra o settings.py da raiz do projeto. Por hora, irei alterar apenas o básico de forma a colocar o administrativo gerado pelo django com poucas alterações:
coloque o seguinte comando na primeira linha do seu arquivo:
from os import path as os_path
Nesta linha, estou importando o objeto path do pacote os, e colocando um alias para tal: os_path. Utilzaremos isso logo a seguir para configurar o media.
Os controles de debug servem para o django gerar uma tela erro ao desenvolvedor informando o motivo do erro. Mais a frente tratarei dos erros mais comuns de cometer durente o desenvolvimento. Por hora, deixe as duas linhas como estão:
DEBUG = True TEMPLATE_DEBUG = DEBUG
Vamos criar duas setting neste ponto para definir o caminho e a url do projeto. Coloque os comandos a seguir abaixo dos controles do DEBUG.
PROJECT_PATH = os_path.abspath(os_path.split(__file__)[0])
SITE_URL = 'http://localhost:8000/'
Certifique-se que a setting SITE_URL tenha uma barra no final conforme o código acima.
Logo em seguida está uma tupla com os administradores do seu projeto. Coloque seu nome e seu email. nos respectivos lugares e descomente a linha. Isso será util mais a frente quando for colocar para enviar os logs de erros para o email. Deixe seu código assim:
ADMINS = ( ('Seu nome aqui', 'seuemail@provedor.com.br'), )
VALE LEMBRAR:
A indentação para indicar que os elementos hierarquicamente dispostos têm o mesmo avanço relativamente à posição (x,0). Na maioria das linguagens a indentação tem um papel meramente estético, tornando a leitura do código fonte muito mais fácil (read-friendly), porém é obrigatória em outras. Python, por exemplo, utiliza esse recurso tornando desnecessário o uso de certos identificadores de blocos ("begin" e/ou "end").
Para este tutorial utilizarei UM TAB, para cada nível de indentação
O Banco de Dados
Crie uma database no seu banco de dados e configure cada variável com seu respectivo valor conforme o exemplo abaixo:
DATABASE_ENGINE = 'mysql'
DATABASE_NAME = 'app'
DATABASE_USER = 'usuario'
DATABASE_PASSWORD = 'senha'
DATABASE_HOST = '' # deixe vazio para localhost
DATABASE_PORT = '' #deixe vazio para porta padrao do banco escolhido. Neste caso 3306.
O usuário informado acima deve ter privilégios para criação/alteração de tabelas, indices etc., na database informada.
Acerte também o fuso horário que deseja utilizar:
TIME_ZONE = 'America/Sao_Paulo'
Outro recurso muito interessante é a internacionalização. O Django já provê uma serie de facilidades para deixar seu projeto multi-lingua. Mais a frente , mostro como funciona a traduçãio automática. Coloque o idioma padrão aqui:
LANGUAGE_CODE = 'pt-Br'
O próximo setting é o ID do site que está trabalhando. Com o django é possível utilizar a mesma administração pra projetos semelhantes porém independentes, gerenciando através desta setting. Deixe ela sem nenhuma alteração como descrito abaixo:
SITE_ID = 1
A próxima setting é referente a internacionalização. Deixe ela como True que iremos utilizá-la mais a frente.
USE_I18N = True
O MEDIA
O media é onde ficarão todos os arquivos referentes a conteúdo, como por exemplo
- páginas de estilos (css)
- javascripts
- todos os arquivos vindos de upload pela administração, tais como fotos, videos, pdfs, etc.
- MEDIA_ROOT = os_path.join(PROJECT_PATH, 'media')
- MEDIA_URL = '%smedia/' % SITE_URL # trailing slash
- ADMIN_MEDIA_PREFIX = '%smedia/' % SITE_URL # trailing slash.
No item 1, usaremos o método join do objeto os_path previamente importado para concatenar o caminho do projeto com a string media. Já no item 2, será definido a url do media. O conteudo de %s será substituido pela setting SITE_URL (outra forma de concatenação de strings), também previamente definida. E por fim, no item 3, o caminho do media para o administrativo, igualmente definido no item 2.
Para o administrativo do django, não é necessário ter uma pasta media dentro do seu projeto. Farei isso mais a frente quando criar uma aplicação que precisará disso.
A setting SECRET_KEY, faz parte do algoritmo de criptografia que o django utiliza para gerar senhas por exemplo. Deixe esta setting sem nenhuma alteração.
A tupla MIDDLEWARE_CLASSES define quais middlewares serão utilizados pelo projeto, por default 3 deles já vem adicionados a lista e por hora são apenas os necessários. Deixe esta settings também sem nenhuma alteração.
ROOT_URLCONF define qual será o arquivo de urls utilizado pelo projeto. No caso usaremos o criado na raiz do projeto. Por default, essa setting já vem com esse valor, apenas confira para checar:
ROOT_URLCONF = 'app.urls'
A tupla TEMPLATE_DIRS é a responsável por mapear os possíveis caminhos para seus templates que serão utilizados nas views de suas aplicações e/ou alguma view personalizada no admin. Este tópico será discutido mais a frente.
Deixe a tupla da seguinte forma:
TEMPLATE_DIRS = ( os_path.join(PROJECT_PATH, 'templates') )
E por fim, a setting INSTALLED_APPS é a tupla que contém todas as aplicações instaladas do seu projeto. Vale destacar que se desenvolvido corretamente uma aplicação, é possivel torná-la plugável e utilizá-la em outros projetos de forma fácil e rápida.
Por hora apenas adicione a aplicação dos usuarios do admin:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin', #linha que adiciona o admin
)
Com o settings.py configurado, vá ao promtp, navegue até a pasta do seu projeto (C:\Projetos\app) e execute o seguinte comando para a criação do banco:
python manage.py syncdb
Isto irá criar todas as tabelas das aplicações instaladas, com relacionamentos, indices e de uma maneira otimizada.
Após a criação das tabelas, digite yes quando for questionado se deseja criar um super-usuário. Prencha os dados conforme forem solicitados.
Este usuário é o primeiro usuário com acesso ao administrativo. Trataremos da administração de usuários na Parte 2.
Para definirmos a url da administração, abra o urls.py e descomente as seguintes linhas linhas:
from django.contrib import
admin admin.autodiscover()
e dentro de urlpatterns, descomente a url do admin:
(r'^admin/(.*)', admin.site.root),
No servidor de teste local do Django, é necessário informar que os conteudos da pasta media são conteudos estáticos.
No urls.py deixe o início do arquivo da seguinte forma:
from django.conf.urls.defaults import *
from django.conf import settings
from os import path as os_path
Ainda no urls.py coloque o seguinte código no final do arquivo:
if settings.DEBUG:
urlpatterns += patterns('',
(r'^media/(.*)$', 'django.views.static.serve', {'document_root': os_path.join(settings.PROJECT_PATH, 'media')}),)
Mais uma vez tome cuidado com a indentação.
Feito isso, vá até a pasta onde fez o checkout do Django (C:\Django\), e copie as seguintes pastas:
C:\Django\django\contrib\admin\media C:\Django\django\contrib\admin\templates
Agora vá até a raiz do seu projeto e cole-as.
Volte ao prompt e digite o seguinte comando para iniciar o servidor inbutido no django para testes:
python manage.py runserver
Com tudo corretamente configurado, você dever receber uma mensagem semelhante à:
Django version 1.1 pre-alpha, using settings 'app.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Pronto! Já temos o servidor do django rodando local para testes.
Vá ao navegador e digite o seguinte endereço:
http://localhost:8000/admin/
Com tudo rodando perfeitamente, você verá uma tela conforme a apresentada na Figura 1:
Caso queira ver tudo o que foi feito neste passo, acesse a administração com o super-usuário criado.
Na próxima parte, será explicado detalhes sobre a administração.
hasta! =D
show de bola! parabens pelo blog Sr. Agora não tenho mais desculpa pra não brincar com Python!
ResponderExcluir