Desenvolvendo Web com Django: Por onde começar?

AGRADEÇA AO AUTOR COMPARTILHE!

Bom, agora você já têm motivos suficientes para utilizar Python, já tem uma noção de como ele funciona para a Web e quais são as suas principais frameworks, você também conheceu o Django e entendeu como ele funciona. Agora é hora de começar a construir seu “workspace”.

IDEs ou Editores de Textos?

e-text-editor-screenshotJá debatí este assunto antes aqui no PTI. Desenvolve-se em Django de uma forma organizada, a estrutura da framework propicia isso, logo você sabe onde está cada coisa – um editor de textos pode ser uma ferramenta perfeita para desenvolvimento com Django.

Estou usando atualmente o OpenSuse 11.1 com o KDE 4.2, por esse motivo utilizo o Kate como editor de código. Para usuários Gnome, recomendo o excelentíssimo Gedit (que até prefiro). Usuários Mac tem o já tradicional TextMate, e usuários Windows podem contar com o NotePad++. Há também editores mais específicos, dentre eles destaco o SciTe.

Em relação a “projeto”, “estrutura do workspace”, etc. Os citados acima possuem um bom suporte a organização de código, no caso do Kate e do Gedit é possível utilizar plugins para ir enriquecendo a sua composição.

Mas caso você não se sinta seguro sem um IDE, recomendo sem sombras de dúvida o Eclipse/Aptana com o plugin PyDev e o NetBeans (que em sua versão 6.5 é para ter suporte parcial a Django e na versão 7 suporte total). Particularmente, estou gostando de como o pessoal do NetBeans está tratando o Python e o Django e talvez futuramente passe a ser um usuário desta ferramenta…

Ou ainda, você pode usar os “hardcores” Vi(m) e Emacs ;)

Mas lembre-se: Se você possui uma boa organização de pastas, um bom editor de textos, conhecimento de HTML, CSS, Javascript, Python, template tags do Django, vontade de aprender e não tem medo de errar; Não se faz necessário o uso de uma IDE para desenvolver em Django (minha opinião). Talvez seu editor necessite de alguns bons plugins… nisso eu devo concordar.

Que versão do Python e do Django usar?

python-logoAs hospedagens tem uma certa recusa em se instalar algo “muito fresco”, por poder comprometer a segurança de seus clientes. Esperam que a massa utilize e analise para então portar tal tecnologia em sua estrutura.

Eu recomendo a utilização do Python 2.6, que já começou a incorporar as mudanças que nos levarão à utilização do Python 3 (estão fazendo de forma gradativa, justamente para que empresas possam migrar aos poucos os seus recursos) e tem sido adotado nas hospedagens que conheço.

Quanto a versão do Django, com certeza a 1.0 ou a 1.0.2. Deixe a 0.96 urgentemente… atualmente estamos com a versão 1.1 beta à disposição que vem com uma série de implementações, correções e refinamentos. O pessoal do Django não dorme em serviço.

Banco de Dados? Qual utilizar?

postgresqlO ORM do Django tem suporte a MySQL, SQLite, Oracle e PostgreSQL. Tranquilamente os bancos mais “recomendados” para o ambiente de desenvolvimento Web…

Os meus “favoritos” são o MySQL e o SQLite. O Postgres estou guardando para alguma aplicação que realmente necessite do seu poder de fogo (até mesmo pelo fato de que algumas consultas do MySQL são mais rápidas que as do Postgres). O Oracle não tenho contato… não tenho como opinar.

Obviamente a maioria deve conhecer (e bem) o MySQL, principalmente os desenvolvedores (que assim como eu) vieram do PHP. Utilizo-o em projetos de pequeno/médio porte ou projetos que necessitem de um servidor de banco de dados. Caso o projeto seja mais “humilde”, não penso duas vezes em usar o SQLite. Com ele você tem um banco de dados inteiro em um arquivo só sem mistério e nem burocracia.

Client-side: Quais ferramentas utilizar?

csseditlogoSeguindo a filosofia “sem IDE”, o client-side para mim era o “porém” dessa história toda. Se você ainda usa uma IDE (como o Dreamweaver) para escrever suas interfaces… faça como eu… aprenda padrões Web! Você nunca mais vai precisar de outra IDE.

E nada melhor que desenvolver xHTML, CSS e Javascript com o Firebug e o Firefox. Firebug é um plugin que auxilia o desenvolvedor a debugar o HTML, o CSS, o Javascript, o DOM, etc. Além de interagir com os elementos dinamicamente, possui um interpretador Javascript/DOM interativo que é um “salva-vidas”.

Com o Javascript recomendo a utilização de alguma framework que garanta um desenvolvimento “crossbrowser”. Particularmente prefiro a Mootools, mas há tantas outras iguais ou até melhores como a jQuery, Mochikit, Dojo, etc. Para CSS, também recomendo alguma “framework” como o Blueprint, que te auxilia “resetando” os estilos dos elementos e criando uma base rica de estilos.

Com essa coleção, e mais alguns plugins no seu Firefox, você não vai sentir falta de uma IDE ;)

Onde posso hospedar meus projetos Django?

Sem “marketing gratuito”, vou me limitar somente à listar as principais hospedagens Django brasileiras (que eu conheço). Dúvidas sobre as mesmas? Não deixe de visitar a lista de discussão do Django no Google.

Uma lista mais detalhada pode ser conferida em: http://djangofriendly.com/hosts/

Considerações finais

Para quem já viu o post de minha autoria sobre desenvolvimento Web com software livre, notará que me repetí em alguns momentos.

Mas o objetivo aqui é diferente, é mostrar que mesmo o post tendo sido grande você não precisa de muito para iniciar-se em Django. Afirmo que você em alguns momentos vai se surpreender até onde pode chegar com ferramentas tão “limpas” e leves.

Questionamentos?

AGRADEÇA AO AUTOR COMPARTILHE!

Klaus Peter Laube

Mais artigos deste autor »

Tecnólogo em Análise e Desenvolvimento de Sistemas pelo Centro Universitário de Jaraguá do Sul (UNERJ). Desenvolvedor Web de longa data, apaixonado por Python e defensor dos padrões Web. Escreve quando pode no http://www.klauslaube.com.br.


8 Comentários

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">