Conheça o Plugfeed | » Início » Programação » Python e Zope » Django, Primeiros Passos 2
Conheça o Plugfeed | » Início » Programação » Python e Zope » Django, Primeiros Passos 2 -->
 
Avaliação: | Publicado em: 16/11/2006
Django, Primeiros Passos 2
Allisson Azevedo trabalha com informática há 6 anos, atua nas áreas de gerenciamento de redes e desenvolvimento web.
Django, Primeiros Passos 2

Com todos os programas instalados no sistema é hora de começar nosso primeiro projeto usando o framework Django.

Estou usando o ubuntu 6.10 (edgy) nesse documento, as instruções para instalação são semelhantes ao 6.06.

Vou utilizar a última versão em desenvolvimento (adquirida pelo subversion), visto que é bem estável e reflete as últimas mudanças rumo a versão 1.0.

Criando o projeto

django-admin.py

O script django-admin.py é copiado para o diretório /usr/bin quando instalado no Linux, se você usar o windows coloque esse arquivo dentro de algum diretório visível a variável PATH do sistema.

Criando nosso projeto:

allisson@allisson-laptop:~/workspace$ ls
allisson@allisson-laptop:~/workspace$ django-admin.py startproject bookmark
allisson@allisson-laptop:~/workspace$ cd bookmark/
allisson@allisson-laptop:~/workspace/bookmark$ ls
__init__.py manage.py settings.py urls.py
allisson@allisson-laptop:~/workspace/bookmark$

Explicando melhor o comando:

django-admin.py
Esse é o script responsável por tarefas administrativas do Django.
startproject
Esse parâmetro avisa ao script django-admin.py que será criado um novo projeto.
bookmark
O nome do novo projeto, um novo diretório com esse mesmo nome é criado.

Agora temos os seguintes arquivos dentro do diretório bookmarks:

  • __init__.py Arquivo que indica ao Python que esse diretório vai ser considerado um pacote.
  • manage.py Script semelhante ao django-admin.py, para tarefas administrativas do seu projeto.
  • settings.py Configurações do projeto.
  • urls.py Configurações de url para o projeto.

Servidor web

O Django vem com um pequeno servidor web embutido para ajudar no desenvolvimento.

Iniciando o servidor:

allisson@allisson-laptop:~/workspace/bookmark$ python manage.py runserver
Validating models...
0 errors found.

Django version 0.96-pre, using settings 'bookmark.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Acesse a url htpp://localhost:8000/ e confira a página de boas vindas do Django.

Configurando o projeto

Agora chegou a hora de configurar o seu projeto, abra o arquivo settings.py no seu editor preferido e confira as mudanças que eu fiz no meu projeto.

settings.py padrão(Apenas as partes que eu vou editar):

# Django settings for bookmark project.

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
# ('Your Name', 'your_email@domain.com'),
)

MANAGERS = ADMINS

DATABASE_ENGINE = '' # 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
DATABASE_NAME = '' # Or path to database file if using sqlite3.
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.

# Local time zone for this installation. All choices can be found here:
# http://www.postgresql.org/docs/current/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE
TIME_ZONE = 'America/Chicago'

# Language code for this installation. All choices can be found here:
# http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes
# http://blogs.law.harvard.edu/tech/stories/storyReader$15
LANGUAGE_CODE = 'en-us'

Minhas alterações no settings.py:

# Django settings for bookmark project.

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
('Allisson Azevedo', 'allisson@gmail.com'),
)

MANAGERS = ADMINS

DATABASE_ENGINE = 'sqlite3' # 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
DATABASE_NAME = 'bookmark.db' # Or path to database file if using sqlite3.
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.

# Local time zone for this installation. All choices can be found here:
# http://www.postgresql.org/docs/current/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE
TIME_ZONE = 'America/Recife'

# Language code for this installation. All choices can be found here:
# http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes
# http://blogs.law.harvard.edu/tech/stories/storyReader$15
LANGUAGE_CODE = 'pt-br'

As mudanças foram:

  • ADMINS Com as minhas informações.
  • DATABASE_ENGINE para sqlite3.
  • DATABASE_NAME para bookmark.db.
  • TIME_ZONE para America/Recife.
  • LANGUAGE_CODE para pt-br (Português do Brasil).

Outra configuração importante são as últimas linhas:

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
)

Cada entrada do INSTALLED_APPS é um aplicativo para seu projeto:

  • django.contrib.auth Sistema de autenticação.
  • django.contrib.contenttypes Framework para content-types.
  • django.contrib.sessions Framework para sessões.
  • django.contrib.sites Framework para configurar vários sites com apenas uma instalação do Django.

Por exemplo, se você não quiser o sistema de autenticação que vem com o Django basta comentar a linha e desenvolver o seu próprio. E assim por diante, nos meus documentos eu sempre uso todos esses aplicativos.

Para mais informações sobre as configurações visite a documentação

Depois de tudo configurado vamos criar as tabelas no banco de dados:

allisson@allisson-laptop:~/workspace/bookmark$ python manage.py syncdb
Creating table auth_message
Creating table auth_group
Creating table auth_user
Creating table auth_permission
Creating table django_content_type
Creating table django_session
Creating table django_site

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 'allisson'): allisson
E-mail address: allisson@gmail.com
Password:
Password (again):
Superuser created successfully.
Installing index for auth.Message model
Installing index for auth.Permission model
allisson@allisson-laptop:~/workspace/bookmark$

Foi criado um superusuário pois o sistema de autenticação está na lista de aplicativos disponíveis, agora o próximo passo é criar nosso próprio aplicativo.

Criando seu primeiro aplicativo

Como visto anteriormente, um projeto é composto de uma série de aplicativos, isso é uma característica que torna o Django bastante modular.

Criando seu primeiro aplicativo:

allisson@allisson-laptop:~/workspace/bookmark$ python manage.py startapp bookmarks
allisson@allisson-laptop:~/workspace/bookmark$ ls bookmarks/
__init__.py models.py views.py
allisson@allisson-laptop:~/workspace/bookmark$

Foi criado um novo diretório com o mesmo nome do aplicativo, e dentro desse diretório temos os seguintes arquivos:

  • __init__.py Arquivo que indica ao Python que esse diretório vai ser considerado um pacote.
  • models.py Arquivo onde você define seus modelos.
  • views.py Arquivo onde você define as views do seu projeto.

Vamos escrever nosso modelo editando o bookmarks/models.py:

from django.db import models

# Create your models here.
class Category(models.Model):
name = models.CharField(maxlength=100, core=True)

def __str__(self):
return self.name

class Bookmark(models.Model):
name = models.CharField(maxlength=100, core=True)
category = models.ManyToManyField(Category)
url = models.CharField(maxlength=100, core=True) # Poderia usar models.UrlField
note = models.TextField()

def __str__(self):
return self.name

Antes que você se desespere, leia a documentação model_api.

Deu para perceber que cada modelo é uma classe em Python, o método __str__ foi definido para que o nome do objeto seja retornado.

Temos um relacionamento muitos-para-muitos entre Category e Bookmark, ou seja, um bookmark pode ser de várias categorias.

Agora que temos o nosso modelo definido, vamos criar as tabelas, primeiro é preciso registrar o aplicativo no settings.py

settings.py:

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'bookmark.bookmarks',
)

Agora criando as tabelas:

allisson@allisson-laptop:~/workspace/bookmark$ python manage.py syncdb
Creating table bookmarks_category
Creating table bookmarks_bookmark
allisson@allisson-laptop:~/workspace/bookmark$

Agora temos o projeto configurado, um aplicativo com modelo pronto. No próximo artigo vamos começar a utilizar a api que o Django disponibiliza para manusear os dados.

Este artigo é a parte 2 de 2 da seguinte série:
  1. Django, Primeiros passos, parte 1
  2. Django, Primeiros Passos 2

olá
e o resto do tutorial? : Não avaliado
muito bom... soh fiquei na duvida no INSTALLED_APPS e TEMPLATE_DIRS não entendi muito bem o que colocar...
Valdinei dos Santos <dineiatgmail,com>
Quando teremos o ultima parte
Rafael Jamur <rjamur@gmail.com>
Ha Ha Ha...

Nadamos, nadamos, e morremos na praia.

Mas tudo bem :)
mrsantos <mr.karu@gmail.com>
legal o turorial, mas ficou faltando a ultima parte né?
:)








Um produto Detetive.net