Análise do Django

Como já falei aqui anteriormente o Django é um Framework para desenvolvimento de aplicações web escrito em Python que tem por objetivo simplificar a vida do desenvolvedor e possibilitar a criação de aplicações de forma limpa e organizada. Também havia prometido que descreveria a minha experiência com o framework e é por isso que resolvi escrever o texto abaixo.

O primeiro passo na utilização do Django foi fazer a sua instalação, o que não foi difícil, já que bastou seguir as instruções contidas no Tarball. Depois disso, como todo bom iniciante, parti para o processo de leitura do tutorial, disponível na área de documentação do site oficial, e repetição dos passos descritos em meu próprio equipamento.

A utilização é bastante simples, básicamente composta pelos seguintes passos:

  1. Inicialização do projeto, que é feita com o comando django-admin.py startproject projeto;
  2. Configuração da aplicação, que consiste em informar o endereço, login e senha, além do tipo (mysql, postgres, etc) da base de dados a ser utilizada pela aplicação, através da edição do arquivo settings.py;
  3. Criação da aplicação (um projeto pode ser composto por multiplas aplicações), o que é feito com o comando django-admin.py startapp aplicação;
  4. Definição das classes, editando o arquivo apps/aplicação/models/aplicação.py; e
  5. Instalação da aplicação, que é na verdade a geração das tabelas necessárias ao funcionamento da aplicação na base de dados indicada na configuração, o que é feito pelo comando django-admin.py install aplicação.

Omiti alguns detalhes do processo, como a configuração do settings.py para que a aplicação seja adicionada ao projeto e outros pequenos detalhes de implementação, já que não é essa a finalidade desse texto, mas basicamente é assim que a coisa funciona.

Com as devidas definições no modelo, parâmetros especiais, etc. é possível ter uma interface de gerenciamento de dados completa, com direito a mecanismo de busca, níveis de acesso, autenticação, filtragem, além das operações CRUD (Create, Recover, Update, Delete).

Depois da primeira experiência comecei a montar uma pequena aplicação de minha própria autoria (sempre recorrendo à documentação no site oficial) e posso dizer que:

É possível criar aplicações em minutos com o Django, entretanto ainda não comecei a mexer com as views (templates), mas posso garantir que pelo menos o “M” (model) e parte do “C” (controller) da triade MVC, sobre a qual está alicerçado o framework, são postas na tela com pouquissimo trabalho.

Pois bem. Nos próximos dias voltarei a dar notícias do Django por aqui. Python on Rails? Não sei… Mas pode ser até melhor.


9 Comments

  1. Jonatas Oliveira disse:

    Você já utilizou alguma vez o TurboGears (TG)?

    Ainda não vi (e nem procurei) comparação dos dois por aí, pelo que vi, os dois usam SQLObject, o Django tem uma interface de administração que parece ajudar na configuração do projeto e no acesso a ele, os dois podem utilizar o mesmo template (Cheettah), mas gosto muito do Kid, porque eh do mesmo estilo do PHPTAL, que eu já utilizava. Quanto ao controller não lí nada sobre o Django, mas o Turbogears tem o Cherrypy que ajuda em vários momentos.

    Espero que você poste algo semelhante a esse post, achei interessante.

    Se você puder mostrar tb mais detalhes sobre o projeto que você citou, eu gostaria de trocar informações, se você tiver interessado sobre o TG.

  2. Marcelo R. Minholi disse:

    Eu estou testando o TurboGears, mas a interface de administração do Django realmente ajuda muito e se tivesse que fazer o mesmo usando TurboGears ou qualquer outro framework iria tomar muito mais tempo.

    O Django e o TurboGears são muito parecidos, entretanto, ao contrário do TurboGears, o Django foi escrito em grande parte do zero, sem utilização de bibliotecas externas.

    Estou fazendo aos poucos, mas já tenho alguns conteúdos básicos implementados, dei o nome ao app de “basic” e ele contém conteúdos básicos (Imagem, Album, Artigo, Evento), além de classes para folksonomia, e pretendo levar ao ar em breve o site da rádio universitária da UNIPAR usando a estrutura que estou preparando.

    Como todo o esquema de organização do Django permite o re-aproveitamento das aplicações elas também poderão ser re-utilizadas em projetos futuros.

    Logo vou falar mais sobre a experiência com o Django, ainda tem algumas coisas que precisam ser acertadas nele, mas tudo que pensei em sugerir já está proposto no Trac do projeto, então penso que antes dele atingir a versão 1.0 já atenderá completamente as minhas necessidades.

    Eu estava trabalhando com o Plone usando Archetypes, mas mesmo ficando sem alguns recursos do Plone, como o workflow, acho que o Django é uma plataforma bem mais flexível para projetos pequenos e talvez seja até mesmo para projetos complexos.

  3. Marcelo R. Minholi disse:

    Encontrei um texto comparativo entre o Django com o Rails e o TurboGears.

  4. jayme disse:

    Parabéns pelo texto!

  5. Tomas disse:

    Olá… Interessante o seu texto, e andei procurando documentação em português sobre o Django e não encontrei… porque meu inglês não é lá estas coisas;
    Sabe de alguma comunidade pra trocar experiências?

  6. Marcelo R. Minholi disse:

    Por enquanto eu acho que são poucos os usuários do Django no Brasil, mas vale a pena frequentar o canal de IRC #django no irc.freenode.net e o #python-br. Sempre há alguém que também está interessado no uso do Django também nas listas de discussão sobre python e zope.

    Com o tempo a tendência a quantidade de interessados irá aumentar bastante, é o ciclo natural das coisas. 😉

  7. Marinho Brandão disse:

    Também estou estudando Django e implementando um sistema com 3 “aplicações”:

    cadastro
    financeiro
    relacionamento (CRM)

    tem atendido muito bem e estou realmente impressionado. Ando criando algumas utilidades que podem ser interessantes para quem precisar:

    CepField
    EstadoBrasileiroField
    SexoField
    CnpjField
    CpfField
    CnpjCpfField

    dentre outras coisas. Estão disponíveis no endereço:

    http://code.google.com/p/djangobrutils/

    também criei um blog onde estou colocando algumas coisas a respeito:

    http://marinho.wordpress.com

    quem tiver interesse em manter contato para debate e troca de experiências, estou muito interessado.

    Gmail/GTalk: marinho@gmail.com

    Abraços.

  8. André Duarte disse:

    Fiz alguns testes com django e também não cheguei a usar os templates, pelo pouco que vi é muito interessante, uma pena ainda não ter uma extensa documentação (how-to´s, livros, artigos, etc).

  9. Tvitor disse:

    E para desenvolvimento desktop qual framework você indicaria?


Deixe uma resposta