Skip to content


Trabalhando com django usando Netbeans

Não é de hoje que escrevemos artigos mostrando como netbeans pode ser utilizado para constituir ambientes de desenvolvimento. Neste artigo iremos demostrar como podemos montar um ambiente de desenvolvimento para o framework django utilizando diversas ferramentas. Veja as ferramentas que iremos utiliza logo abaixo:

  • Gnu/Linux kUbuntu 9.04
  • Ambiente Python
  • Netbeans 6.7
  • Versionadores de código
  • Mozilla Firefox

Algumas destas ferramentas já foram estudadas em outros artigos desta forma serão feitas somente considerações importantes.

1. kUbuntu

O kUbuntu foi a ferramenta que mais me surpreende nestes últimos tempos, é verdade que o KDE deixou a desejar assim que saiu sua 4 versão, isto foi de alguma forma uma decepção para muito usuários deste gerenciador de janelas, mas como era de se esperar o pessoal que desenvolve estes dois projetos kUbuntu e KDE conseguiram disponibilizar um ambiente tão eficiente quando no tempo da tão estável versão 3.5.

Desta forma ainda podemos citar que durante todo o processo que veio desde a versão do kUbuntu 8.04 não ouve muitas modificações, a única diferença esta na disponibilização do sistema de arquivo Ext4 e do autologin, aconselho o uso do sistema de arquivos Ext4, quanto ao autologin não recomendo.

2. Ambiente Python

O nosso ambiente python é composto de diversas bibliotecas, dentre eles temos objetos para trabalhar com os mais diversos dipos de dados, iremos utiliar basicamente o framework django e um conector para o nosso banco de dados, caso exista a biblioteca python como é o caso dos bancos mysql, postgresql e outros bancos proprietários como o oracle.

1. Framework django

Podemos instalar o framework django com um simples comando aptitude, veja:

user@host:~$ sudo aptitude install python-django

Para checar a versão do django instalada incie veja o comando python:

user@host:~$ python -c "import django; print(django.VERSION)"

2. Driver de banco de dados

MySQL e PostgreSQL

A instalação destes conectores é muito simples, pois estes driveres estão contidos na arvore de pacotes do Ubuntu, desta forma podem ser instalado com um simples comando:

user@host:~$ sudo aptitude install python-mysqldb python-psycopg2.

Assim já podemos testar se os conectores foram instalados. Para isto execute o console python e import os modulo MySQLdb e PsycoPG2,  veja como é simples:

user@host:~$ python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
import MySQLdb as mysql
import psycopg2 as postgresql

Se não ocorrer nenhum erro então os conectores para os bancos de dados MySQL e PostgreSQL estão instalados.

Oracle

Para instalar o conector do Oracle primeiro é necessário instalar um produto que a Oracle distribui livremente, o Oracle Instant Client, existe um respositorio da oracle que disponibiliza um pacote deste produto, veja como instalar este produto na documentação disponibilizada por este link, mas antes de proceguir com a instalação, veja que não iremos instalar o SGBD e sim o seu cliente, por isto troque o comando apt-get install oracle-xe por apt-get install oracle-client.

Se tudo correu bem o produto da Oracle foi instalado e pode ser utilizado no diretório /usr/lib/oracle/xe/client vamos precisar colocar a variável ORACLE_HOME no nosso ambiente, edite o arquvio /etc/bash.bashrc e adicione no final do arquivo o seguinte conteudo:

EXPORT ORACLE_HOME="[path do oracle client]"

Recarreque abra um novo terminal e verifique se o valor de ORACLE_HOME foi mesmo configurado execute o comando:

Caso não apareça nada reveja o procedimento de modificação do arquivo bash.bashrc.

Também precisamos informar ao nosso ambiente, temos novas bibliotecas dinâmicas, os arquvios .so, permitindo assim o GCC compilar fontes que utilizam biliotecas Oracle de conexão com banco de dados. Para isto crie um novo arquivo /etc/ld.conf.d/oracle.conf e adicione o endereço do diretório lib dentro do ORACLE_HOME, para isto pode executar o seguinte comando:

echo $ORACLE_HOME/lib > /etc/ld.so.conf.d/oracle.conf

Agora podemos partir para compilação do conector cx-Oracle, que é mantido pela comunidade, para isto vamos baixar a ultima versão destes fontes, veja no site oficial do cx-Oracle. No momento em que este artigo estava sendo escrito a ultima versão disponivel era a 5.0.2, assim iremos utilizar esta versão para fins de exemplo.

Para poder compilar qualquer modulo python desenvolvido em C temos que contar com o pacote python-dev que permite ao GCC compilar fontes C/C++ que utilizam bibliotecas python, para isto execute o comando

user@host:~$ sudo aptitude install python-dev build-essential python-setuptools

Podemos compilar os fonte do modulo cx-oracle, uma particularidade dos modulos do python é que a maioria desles contam com um padrão de instalação, isto podemos chamar de easy_install, esta ferramenta nos permite instalar com facilidade muitos modulos python. Então podemos descompactar e compilar este modulo, veja como:

user@host:~$ mkdir tmp
user@host:~$ tar xzf cx_Oracle-5.0.2.tar.gz
...
user@host:~$ cd tmp
user@host:~$ python setup.py install
..
user@host:~$

Uma outra forma de realizar esta instalação é através do setuptools, veja como seria:

user@host:~$ easy_install cx_Oracle

Se tudo se passou com sucesso, podemos então testar o nosso conector veja como:

user@host:~$ python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
import cx_oracle as db

Caso tenha ocorrido algum erro, reveja esta parte do artigo.

3. Netbeans 6.7

O netbeans a muito tempo deveria ter providenciado um template para o django, visto que este framework vem se popularizando como alternativa para desenvolvimento de blog, e também para sistema web. Mas como o netbeans é uma extraordinária, utilizando o modulo para python associado ao modulo para ant podemos criar um script para trabalhar com o framework django.

Então vamos fazer o download do netbeans preparado para o python, a distribuição que é conhecida com Netbeans Python EA2.

Netbeans Python EA2 (download.netbeans.org/netbeans/6.7/python/ea2)

Netbeans Python EA2 (download.netbeans.org/netbeans/6.7/python/ea2)

A instalação do netbeans é a mesma que comentamos neste artigo.

1. Ant

Com o netbeans instalado podemos partir para instalação do plugin Ant, a intalação é muito simples. Vejam as figuras com os passos:

Instalação do plugin ant no netbeans.

Instalação do plugin ant no netbeans.

O primeiro passo é abrir o gerenciador de plugins, agora vamos selecionar o plugin para Ant, e clicar em instalar, será aber uma uma janela informando quais foram os plugins selecionados, confira se o plugin Ant aparece nesta lista, o próximo passo ira informar sobre a licença do plugin, caso esteja de acordo com a licença, aceite-a e aguarde até que o plugin seja baixado e instalado. O netbeans será reiniciado. Para visualizar os passos melhor clique na imagem que esta acima.

2. Ant Script

Agora podemos construir o nosso script, este script contará com as seguintes funcionalidades:

  • Criar o projeto django.
  • Criar um novo aplicativo no projeto.
  • Sincronizar banco de dados.
  • Start do servidor embutido.
  • Stop do servidor embutido.
  • Abrir o projeto em um navegador.

Vamos ao código do script:

<?xml version="1.0" encoding="UTF-8"?>
<project name="Meu projeto" default="Criar projeto django" basedir=".">
    <property name = "project.dir" location = ".."/>
    <property name = "project.src" value = "src"/>
    <property name = "project.srcdir" value = "${project.dir}/${project.src}"/>
    <property name = "project.context" value = "/context"/>
    <property name = "project.host" value = "localhost"/>
    <property name = "project.port" value = "8000"/>

    <property name = "console.bin" value = "konsole"/>
    <property name = "console.args" value = ""/>
    <property name = "bin.django" value = "django-admin"/>
    <property name = "bin.python" value = "python"/>
    <property name = "bin.browser" value = "firefox"/>

    <target name="Criar projeto django">
        <rename src="${project.srcdir}" dest="${project.srcdir}.old"/>
        <path location="${project.dir}"/>
        <exec executable = "${console.bin}">
            <arg line = "${console.args}"/>
            <arg line = "${bin.django} startproject ${project.src}"/>
        </exec>
    </target>

    <target name="Criar aplicativo django">
        <path location="${project.srcdir}"/>
        <input addproperty="app" description="Nome do novo aplicativo"/>
        <exec executable="${bin.python}">
            <arg line="manage.py startapp ${app}"/>
        </exec>
    </target>

    <target name="Sincronizar banco de dados">
        <path location="${project.srcdir}"/>
        <exec executable="${bin.python}">
            <arg line="manage.py syncdb --noinput"/>
        </exec>
    </target>

    <target name="Iniciar servidor embutido">
        <path location="${project.srcdir}"/>
        <exec executable="${bin.python}">
            <arg line="manage.py runserver ${project.host}:${project.port}"/>
        </exec>
    </target>

    <target name="Parar servidor embutido">
        <path location="${project.srcdir}"/>
        <exec executable="${bin.python}">
            <arg line="fuser -nk tcp {project.port}"/>
        </exec>
    </target>

    <target name="Abrir no navegador">
        <path location="${project.srcdir}"/>
        <exec executable="${bin.browser}">
            <arg line="http://${project.host}:${project.port}/${project.context}"/>
        </exec>
    </target>
</project>

Existem varios outros comandos, sabendo agora que você pode improvisar com a Ant crie os targets que achar necessário.

4. Versionadores de código

Quando pensarmos em projetos, devemos saber que é necessário saber planejar e alem disto, também temos que controlar os progressos no desenvolvimento do projeto. Hoje o netbeans conta com diversos projetos que permitem este tipo de interação com o projeto. O netbeans hoje pode se conctar tanto a versionadores de código, assim como controladores de projetos como Firebug, Trac, JIRA. Como já temos um artigo falando sobre o Trac não iremos falar da configuração deste tipo de ferramenta.

1. Subversion

Subversion (também conhecido por svn) é um sistema de controle de versão desenhado especificamente para ser um substituto moderno do CVS, que se considera ter algumas limitações.

SVN
Web Sim
Distribuido Não
SSH Sim
Standalone Sim
Local Sim

2. Git

Git é um Software Livre para controle de versão distribuído. Git foi inicialmente criado por Linus Torvalds para o desenvolvimento do kernel Linux (kernel). O objetivo do Git é atender os requisitos do modelo de desenvolvimento do kernel, tais como desenvolvimento distribuído, manipulação de grandes conjuntos de arquivos, operações de junção (merge) complexas, rapidez, entre outros requisitos.

Git
Web Sim
Distribuido Sim
SSH Sim
Standalone Sim
Local Sim

3. Mercurial

Mercurial é uma ferramenta multi-plataforma de controle de versão distribuído para desenvolvedores de software. O sistema é implementado principalmente em Python. Todas operações do Mercurial são chamadas através de palavras chave de opções para o programa controlador hg, uma referência para o símbolo químico do elemento Mercúrio.

Hg
Web Sim
Distribuido Sim
SSH Sim
Standalone Sim
Local Sim

5. Referencias

  1. http://pt.wikipedia.org/wiki/Subversion
  2. http://pt.wikipedia.org/wiki/Git
  3. http://pt.wikipedia.org/wiki/Mercurial
  4. http://rodrigomatias.goware.com.br/blog/2007/12/kubuntu-como-ambiente-de-desenvolvimento-java/
apt-get install oracle-xe

Posted in Desenvolvimento.

Tagged with , , , , , , , , , , , , , , , .


9 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Francisco Souza says

    Salve Rodrigo, parabéns pelo post.

    Não gosto do Netbeans, mas o post é legal pra quem gosta =P

    Abraços o/

  2. Rodrigo Pinheiro Matias says

    Respeito sua opinião. Existem N formas de se desenvolver utilizando django.

  3. Gustavo Henrique says

    Parabéns pelo artigo!
    Não há muito material disponível desse tipo e sem dúvida você está ajudando a comunidade.

    Abraços!

  4. Marcos Thomaz says

    Show de bola o artigo. Parabéns!

  5. Brunno Gomes says

    Muito bem explicado o artigo.

    Vou testar !

    Parabéns, muito bem escrito.

  6. Rodrigo Pinheiro Matias says

    Value pela correção Tony pela contribuição na seção de instalação do cx_Oracle.

Continuing the Discussion

  1. Tweets that mention Trabalhando com django usando Netbeans – Rodrigo Pinheiro Matias -- Topsy.com linked to this post on 22 de dezembro de 2009

    [...] This post was mentioned on Twitter by marinhobrandao, Francisco Souza. Francisco Souza said: Pra quem é maluco: Trabalhando com django usando Netbeans – http://is.gd/5xPPv [...]

  2. Trabalhando com django usando Netbeans linked to this post on 6 de janeiro de 2010

    [...] Algumas destas ferramentas já foram estudadas em outros artigos desta forma serão feitas somente considerações importantes.” [referência: rodrigomatias.goware.com.br] [...]

  3. Tweets that mention Trabalhando com django usando Netbeans – Rodrigo Pinheiro Matias -- Topsy.com linked to this post on 14 de abril de 2010

    [...] This post was mentioned on Twitter by Rodrig Pinhei Matias. Rodrig Pinhei Matias said: blog: Trabalhando com django usando Netbeans http://rodrigomatias.goware.com.br/blog/archives/41 [...]



Some HTML is OK

or, reply to this post via trackback.