Web em Python - Django - Parte 4
Autor: Julio Cesar Eiras Melanda | Publicado: 2013-08-17T08:00:00-03:00

Fala pessoal!

Se você ainda não leu os artigos anteriores, leia-os primeiro, para ver todos os detalhes até chegar aqui.



Web em Python - Django - Parte 1


Web em Python - Django - Parte 2


Web em Python - Django - Parte 3


Chegamos então ao momento de começar a criar nossa própria aplicação web em Django!



Entre no diretório do seu projeto que contem o arquivo manage.py e execute o comando

python manage.py startapp meublog

Este comando criará um pacote python junto ao pacote do seu projeto, e é nele que você criará todos os módulos necessários para seu projeto.

Para exemplificar o uso do Django, vamos criar um pequeno blog.

Dê uma boa olhada na estrutura do seu pacote meublog.

meublog/
    __init__.py
    models.py
    tests.py
    viewa.py


Cada um destes módulos python tem sua função, e tem grande importância.

__init__.py, além de indicar que o diretório é um pacote python, pode ser usado para casos em que algum módulo começa a ficar muito complexo e queremos separá-lo em vários arquivos, mas isto fica para um artigo mais avançado ;)
models.py é o módulo onde serão criadas todas as classes que representam os modelos que nossa aplicação precisará.
tests.py é um módulo que conterá testes unitários. Não abordaremos o tema de testes unitários nestes artigos introdutórios.
views.py é o módulo que conterá as classes de controle das views. São estas classes que tratarão os requests que o servidor receber.

Começaremos escrevendo a classe que representará nossos artigos.

Abra o módulo models.py e escreva:


from django.db import models

class Artigo(models.Model):
    titulo = models.CharField(max_length=100)
    conteudo = models.TextField()
    publicacao = models.DateTimeField()



Assim, definimos uma classe, cujos atributos são um campo de texto para o título, um de texto longo para o conteúdo do artigo e outro de datas para o momento da publicação do artigo.

Logo usaremos o Mapeador Objeto-relacional do Django para gerar o banco de dados que guardará nossos artigos a partir desta classe.

Mas, por enquanto vamos continuar codificando.

Crie no mesmo diretório onde está o arquivo models.py um arquivo chamado admin.py.

Coloque neste arquivo o seguinte código:


from django.contrib import admin
from meublog.models import Artigo

admin.site.register(Artigo)



Este módulo é usado para registrar quais das aplicações serão gerenciadas na área de administração do site.

Agora, o último passo, vamos registrar a aplicação no nosso projeto para o Django saber que nossa aplicação meusite será usada.

Abra o arquivo settings.py e encontre a tupla INSTALLED_APPS. Você se lembra que descomentamos uma linha que indicava que usaríamos a aplicação de administração?

Pois agora adicionaremos nossa aplicação à tupla.

A tupla deve ficar assim:


INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    'meublog',
)



Finalmente podemos gerar o banco de dados e testar nossas alterações!

Execute o comando

python manage.py sycndb

O mesmo comando que usamos inicialmente para criar o banco de dados. Todas as vezes que rodarmos este comando, o ORM do Django vai procurar por alterações nos modelos das aplicações registradas e gerar as alterações necessárias no banco de dados.

Agora levante o servidor

python manage.py runserver

Acesse então o endereço local da sua página de administração http://localhost:8000/admin.




Você pode ver que agora existe uma entrada para Artigo na sua página de administração!




Experimente criar, editar e remover artigos na sua aplicação recém criada!




Espero que estejam gostando dos artigos, e fiquem à vontade para fazer perguntas e deixar sugestões!

Na sequência iremos criar a página inicial de nosso blog!

Abraços e até o próximo artigo!