Conteúdo Traduzido do site: Django ProjectEste documento cobre a versão 0.95 de Django e a versão do desenvolvimento. Docs anteriores: 0.90, 0.91 Vamos aprender usando um exemplo. Através deste tutorial vamos demonstrar os passos necessários para a criação de uma simples aplicação Web de pesquisa. Ela vai consistir de duas partes: • Um site público que irá permitir que usuários votem na pesquisa e vizualizem seus resultados. • Um site administrativo que permitirá você adicionar, alterar e excluir pesquisas Vamos assumir que você já tem o Django instalado. Você pode verificar se o Django está instalado abrindo o interpretador interativo Python digitando "import django". Se este comando for executado com sucesso, sem erro, significa que o Django está instalado. Criando um Projeto Se esta é sua primeira vez usando o Django você precisará realizar algumas tarefas de configuração inicial. Você terá que auto-gerar algumas linhas de código que estabelecem o projeto Django -- uma configuração própria a cada instância do Django, incluindo a configuração da base de dados, as opções específicas ao Django e as configurações específicas às aplicações. Na linha de comando, no diretório onde você gostaria de colocar o seu código, execute o comando "django-admin.py startproject mysite". Isto criará no diretório atual um novo diretório chamado "mysite". Coloque o seu código fora dos diretórios do servidor, por exemplo "/home/mysite." Vamos dar uma olhada no que o comando "startproject" criou: Servidor de Desenvolvimento Vamos verificar se tudo está funcionando. Vá para o diretório mysite, se você ainda não estiver lá, e rode o comando python manage.py runserver. Você verá a seguinte saída na linha de comando: Você ligou o servidor de desenvolvimento do Django, a um servidor web leve inteiramente escrito em Python. Nós o incluímos ao Django para que você possa desenvolver coisas rápidamente, sem ter que se ocupar de configurar um servidor de produção - tal como Apache - até que você esteja pronto para a produção. Agora que o servidor está rodando, visite http://127.0.0.1:8000/ no seu navegador Web. Você verá "Welcome to Django" num agradável tom azul-claro pastel. Funciona! Configuração da base de dados Agora, edite o arquivo settings.py. É um módulo normal do Python com as variáveis do módulo que representam as opções de configuração do Django. Mude estes ajustes para combinar parâmetros da conexão da sua base de dados: DATABASE_ENGINE — Escolha um dentre eles "postgresql", "mysql" ou "sqlite3". Outros backends estão também disponíveis. DATABASE_NAME — O nome do seu Banco de Dados, ou o caminho completo(absoluto) do arquivo do Banco de Dados, caso esteja utilizando o SQLite. DATABASE_USER — O nome do usuário do Banco de Dados (não utilizado para SQLite). DATABASE_PASSWORD — A senha do Banco de Dados (não utilizado para SQLite). DATABASE_HOST — O nome do host onde ficará o Banco de Dados. Deixe este como uma string vazia se o servidor de banco de dados estiver na mesma máquina física(não usado para SQLite). Nota: Se você estiver usando PostgreSQL ou MySQL, tenha certeza de ter craido um Banco de Dados neste ponto. Digite "CREATE DATABASE database_name;" no prompt interativo do seu Banco de Dados. Quando você editar settings.py, note a presença do INSTALLED_APPS no final do arquivo. Essa variável contem os nomes de todas as aplicações de Django que são ativadas neste exemplo de Django. Os Apps podem ser usados em múltiplos projetos, e você pode empacotá-los e distribuí-los para que outros os utilizem em seus projetos. Por padrão, INSTALLED_APPS contem os seguintes aplicativos, todos são fornecidos pelo Django: • django.contrib.auth — Um sistema de autenticação.. • django.contrib.contenttypes — Um framework para os tipos de conteúdo. • django.contrib.sessions — Um framework que gerencia sessões. • django.contrib.sites — Um framework para gerenciar múltiplos sites com uma única instalação de Django. Estas aplicações são incluídas, por padrão, porque elas são convenientes na maioria dos casos. Cada uma destas aplicações emprega pelo menos uma tabela na base de dados, embora, assim que nós temos necessidade de criar estas tabelas na base de dados antes que nós possamos as utilizar. Para fazer isso, execute o seguinte comando: O comando syncdb ajusta o INSTALLED_APPS e cria todas as tabelas necessárias na base de dados de acordo com os ajustes da base de dados em seu arquivo settings.py. Você verá uma mensagem para cada tabela criada na base de dados, e você verá um prompt que pergunta se você gostaria de criar uma conta de superusuário no sistema de autenticação. Vá adiante e faça isso. Se você estiver interessado, execute na linha de comando do cliente interativo de sua Base de Dados \dt (PostgreSQL), SHOW TABLES; (MySQL), ou .schema (SQLite) para verificar as tabelas que o Django criou. Criando Modelos Agora que seu ambiente - "projeto" - está inicializado, você pode começar a fazer o seu projeto. Cada aplicação que você escreve em Django consiste em um pacote do Python, em algum lugar no caminho do Python, que segue uma determinada convenção. Django vem com uma funcionalidade que gera automaticamente a estrutura básica do diretório de um app, assim você pode focalizar melhor na escrita do código que na criação dos diretórios. Neste tutorial, nós criaremos um simples aplicativo de votação no diretório do mysite. Consequentemente, o app será acoplado ao projeto que é o código Python dentro do aplicativo votação que consultará o mysite.polls. Mais tarde neste tutorial, nós discutiremos o desacoplamento de suas aplicações para uma distribuição independente. Para criar seu app, certifique-se que você está no diretório mysite e digite este comando: Esta estrutura do diretório abrigará a aplicação de votação. A primeira etapa em escrever um aplicativo Web na base de dados em Django é definir seus modelos - essencialmente, sua disposição na base de dados, com metadados adicionais. Em nosso simples aplicativo de votação, nós criaremos dois modelos: votações(polls) e escolhas(choices). Uma votação tem uma pergunta e uma data de publicação. Uma escolha tem dois campos: o texto da escolha e um registro de voto. Cada escolha é associada com uma votação. Estes conceitos são representados por classes simples do Python. Edite o arquivo polls/models.py para que fique como o exemplo abaixo: O código é claro e conciso. Cada Modelo é representado por uma classe compreendida em django.db.models.Modelo. Cada Modelo tem um certo número de atributos da classe, cada qual representa um campo da base de dados no Modelo. Cada campo é representado por um exemplo de uma classe de models.*Field class - por exemplo, models.CharField para campos de tipo caracter e models.DateTimeField para campos do tipo data. Isto diz ao Django que tipo de dados está contido em cada campo. O nome de cada instância de models.*Field (por exemplo: question ou o pub_date) é o nome de campo. Você usará este valor em seu código do Python, e sua base de dados usá-lo-á como o nome da coluna. Você pode definir um primeiro argumento opcional Field um nome informal, mais fácil de ser compreendido por um leitor humano. Isso é usado em partes introspectivas do Django, e isto distribue também a documentação do código. Se este campo não for fornecido, Django usará o nome editado pela máquina. Neste exemplo, nós definimos somente um nome editado por pessoas para Poll.pub_date. Para todos campos restantes neste modelo, o nome editado pela máquina do campo bastará como seu nome editado por pessoas. Algumas classes do campo requereram elementos. CharField, por exemplo, requer que você lhe dê um maxlength. Isso é usado não somente no schema da base de dados, mas na validação, o que nós veremos logo. Finalmente, note que um relacionamento é definido, usando models.ForeignKey. Isso diz ao Django que cada escolha é relacionada a uma única votação. Django suporta todos os relacionamentos comuns da base de dados: um-para-muitos, muitos-para-muitos e um-para-um. Ativando Modelos Estes poucos bits de código do model dão ao Django muitas informações. Com ele, Django pode: • Criar um schema no Banco de Dados (as instruções CREATE TABLE) para este app. • Criar uma API Python para acesso ao Banco de Dados para acessar os objetos Poll(Votação) e Choice(Escolha). Mas primeiramente nós necessitamos dizer a nosso projeto que as polls(votações) app estão instaladas. Edite o arquivo settings.py outra vez, e mude o INSTALLED_APPS para incluir a string "mysite.polls". Logo ficará como abaixo: Agora o Django sabe que o mysite possui o app votações(polls). Vamos executar um outro comando: Você deve ver algo similar ao seguinte (as instruções CREATE TABLE SQL para o app votações): Observe o seguinte: • A saída exata variará dependendo da base de dados que você está utilizando. • Os nomes da tabela são gerados automaticamente combinando o nome do aplicativo (polls) e o plural do nome do objeto – polls e choices. (Você pode alterar este comportamento.) • As Chaves Primárias (IDs) são adicionadas automáticamente. (Você pode alterar este comportamento também.) • Por convenção, Django adiciona o "_id" ao nome de campo chave estrangeira. Sim, você pode alterar isto, também. • O relacionamento de chave estrangeira (foreign key) é feito explicitamente pela cláusula "REFERENCES". • O código é redigido por um Banco de Dados que você está usando, assim os tipos de campo específicos de cada Banco de Dados tais como o auto_increment (MySQL), o serial (PostgreSQL), ou o integer primary key (SQLite) são gerados para você automaticamente. A mesma coisa acontece com as quotes de nomes de campo - por exemplo, usando quotes dobro ou simples quotes. O autor deste tutorial utiliza PostgreSQL, por isso que o exemplo está na sintaxe de PostgreSQL. • O comando sql não roda realmente o SQL na sua base de dados - ele mostra na tela os comandos SQL de modo que você possa ver que o SQL do Django pensa ser requerido. Se você quiser, você pode copiar e colar este código SQL em seu prompt da base de dados. Entretanto, como nós veremos adiante, Django fornece uma maneira mais fácil de comitar o SQL na base de dados. Se você estiver interessado, execute também os seguintes comandos: • python manage.py validate polls —Verifica qualquer erro na construção do seu models. • python manage.py sqlcustom polls —Mostra as inserções de dados iniciais requeridos pelo framework de administração do Django. • python manage.py sqlclear polls — Mostra as cláusulas "DROP TABLE" necessárias para este aplicativo, de acordo com as tabelas já existentes em sua base de dados (se existentes). python manage.py sqlindexes polls —Mostra as cláusulas "CREATE INDEX" para este aplicativo. python manage.py sqlall polls — Uma combinação dos comandos SQL de "sql", "sqlcustom", e "sqlindexes" Olhando a saída destes comandos pode ajudá-lo a entender o que realmente ocorre por baixo dos panos. Agora, execute syncdb novamente para criar as tabelas do model na base de dados: O comando do syncdb executa o sql do "sqlall" na sua base de dados para todos os apps em INSTALLED_APPS que ainda não existem na sua base de dados. Isto cria todas as tabelas, dados iniciais e índices para todos os apps que você adicionar a seu projeto desde a última vez você executou o syncdb. O syncdb pode ser chamado sempre que você quiser criar tabelas que não existem. Leia a documentação de django-admin.py para informação completa sobre a utilização do manage.py. Manipulando a API Agora abra o shell interativo do Python interactive shell, e iremos manipular a API Python que Django lhe fornece: Chame o Shell Python, usando este comando: Nós estamos usando este comando em vez do comando "python" simplesmente, porque manage.py define o ambiente do projeto para você. "Definir o ambiente" significa duas coisas: • Inserir o mysite sobre sys.path. Para a flexibilidade, diversas partes de Django consultam os projetos na notação Python de caminhos separados por pontos (por exemplo. "mysite.polls.models"). Para que isto para funcione, o pacote do mysite tem que estar em sys.path. Nós já vimos um exemplo deste tipo: a opção de INSTALLED_APPS é uma lista dos pacotes na notação do caminho separado por pontos. • Definição da variável de ambiente de DJANGO_SETTINGS_MODULE, que dá ao Django o trajeto do seu arquivo settings.py. Espere um minuto.
19 agosto 2007
Escrevendo Seu Primeiro Aplicativo Com Django Parte 1
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário