Bem, simplesmente coragem para estudar…

As pessoas vem mal acostumadas com a forma que se vem trabalhando com Web, linguagens como HTML, PHP, asp, .net, passaram por várias tranzições destas a internet sofreu e muita das veses o usuário sem nem perceber foi quem sentiu o maior impacto. Páginas que não abrem, links quebrados, entre outros problemas.

A muito se vinha falando em padronização, mais nada se resolvia, até que o modelo de Orientção a Objetos propos o modelo Model-view-controller(MVC) é um padrão de arquitetura de software. Com o aumento da complexidade das aplicações desenvolvidas torna-se fundamental a separação entre os dados (Model) e o layout (View) então é introduzindo um componente entre os dois: o Controller. Desta forma, alterações feitas no layout não afectam a manipulação de dados, e estes poderão ser reorganizados sem alterar o layout.

Então, para pode desenvolver com python em ambiente web, inicialmente precisamos de coragem, muita coragem, se você nunca escreveu nada para web, fique feliz, caso contrário fique tabém, pois agora você realmente ira se surpreender. Várias linguagens de programação nos dias de hoje tem um otimo suporte a ambiente web.

Abaixo uma sequência exemplos de Frameworks para desenvolvimento Agil na WEB.

ActionScript 3

Java

Perl

PHP

Python

Ruby

Neste artigo estaremos dando referência apenas ao Django já que falaremos de desenvolvimento com python. Django é um framework web para desenvolvimento ágil de software(é um conjunto de metodologias de desenvolvimento de software. O desenvolvimento ágil, tal como qualquer metodologia de software, providencia uma estrutura conceitual para reger projetos de engenharia de software.), onde predomina a simplicidade no código, reutilização de código, mais fácil de definir uma documentação por trabalhar com componentes separados.

O Django funciona basicamente em 3 camadas, uma interface de modelagem de dados(Model), uma interface de visualização(Templates) responssável por colocar os dados na tela do usuário e por fim uma de controle na qual trata os dados e informações, operações(metodos) entre as duas outras camadas, dessa forma acaba ficando mais conhecido como MTV(Model-Template-Views).

Como trabalhar com Django?

Bem,

Vou lafar um pouco dos problemas que estou tendo com o Ubuntu 8.04 no desenvolvimento web com Django.

O primeiro é que a versão do Django que esta no repositorio apt dele não é a mais nova, dessa forma se você é um dev das antigas fique tranquilo, mais se esta iniciando no universo maravilhoso do django tera probleminhas(na realidade tera mais dores de cabeça do que problemas mesmo), eu preferi fazer o download no site oficial do projeto www.djangoproject.org.

Bem abaixo um tutorial rapido para instalação:

faça o download do django usando subversio(sistema de controle de versões)

$ svn co http://code.djangoproject.com/svn/django/trunk/

quando terminar de baixar entre no diretorio “trunk”

$ cd trunk

mude suas permissões para administrador “root” execultando “$ su", no ubuntu execulte "$ sudo su" perceba que o indicador da sua shell ira mudar de $ para # mostrando que agora esta como Super Usuário. Desta forma vamos instalar o django, é necessário utilizar root por que na instalação o sistema escreve dentro de diretorio que o usuario comum não pode escrever, então execulte:

$ sudo su

# python setup.py install

testando se a instalação do django foi feita.

# exit

$ django-admin.py startproject seuprojeto

$ cd seuprojeto

$ ls

__init__.py manage.py settings.py urls.py
__init__.pyc settings.pyc urls.pyc

$

Observe se o conteudo for este ae, fica tranquilo tudo deu certinho…

Um problema observado:

quando instalei o django com o apt-get do ubuntu 8.04 foi tranquilo tambem, criei meu projeto e tudo parecia bem, so que a versão não é a mais nova, desta forma alguns problemas na propria sintax do codigo vão lhe encomodar.

QUE FIQUE CLARO: ISSO NÃO É UM PROBLEMA DO UBUNTU, MAIS DA VERSÃO DO DJANGO

Passado por esta fase de instalação temos outra bronca, que é no intanto bem legal ;)

Como o python não roda como PHP e afins, temos que criar hosts virtuais, cada vhost pode ser tambem um projeto, por exemplo, no apache todo diretorio criado dentro de /var/www/htdocs pode ser um projeto diferente, o problema é que não da pra você organizar de forma a simular realmente o seu trabalho, criando hosts virtuais isso fica mais tranquilo, quando começas a indicar diretorios externos do /var/www/htdocs melhorando a performace e escondendo seus codigos python de possiveis curiosos(isso não quer dizer que seu codigo é fechado :) ), o lance é se seus codigos ficarem expostos, qualquer um pode ler e por exemplo conseguir pegar informações como login e senha do banco de dados.

Então voltando ao problema…

Para instalar o mod_python no apache utilizei o apt-get ;) ja que estou usando ubuntu então usufruir do que eles te dizem que é bom… mais fique tranquilo vai funcionar.

Então, mod_python funcionando ta na hora de configurar o danado do vost.

$ sudo su

# nano /etc/apache2/apache2.conf

adicione no final do apache2.conf

Include /etc/apache2/vhost/vhost.conf

sauve e feiche o nano, admito que você ja sabe fazer isso ;)

perceba que voce adicionou um caminho no apache2, tranquilo, então entre no diretorio /etc/apache2 listando o conteudo do diretorio
observará que não existe o direotorio vhost vamos criar:

# pdw

/etc/apache2

# mkdir vhost

# cd vhost

# touch vhost.conf

note que o comando touch cria um arquivo de texto em branco, e é nele que vamos mostar nosso vhost.

# nano vhost.conf

<Location “/seuprojeto/”> # aqui ira o nome da localização do endereço, exe: localhost/seuprojeto
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE seuprojeto.settings # observe este indicara o setting no seu projeto
SetEnv PYTHON_EGG_CACHE /tmp
PythonInterpreter olga
PythonDebug Off # para testar deixe On mais depois deixe Off
PythonPath “['/home/usuario/'] + sys.path” # pronto aqui é que fica lindo… se o seu projeto estiver solto dentro da raiz do usuario, deixe apenas assim, se estiver dentro de uma outra pasta coloque o caminho certo, mais nunca coloque o nome do seu projeto aqui, pois não ira funcionar.

</Location>
BEM OUTRO PROBLEMA OBSERVADO

O mod_python ficou meio tosco “espero que vocês não tenham o mesmo problema que eu” mais hora funciona hora nao funciona, isso aqui no ubuntu 8.04, temos um servidor onde esta rodando aplicações django com slackware e nao da problemas aletta.descentro.org .

então sempre que tenho problemas com o mod_python ou seja, quando você abrir seu projeto no firefox e der erro 404 pode ser o mod_python.

COMO RESOLVER?

Como estou testando a ferramenta, não me preocupo muito com isso, dessa forma rodo o servidor de testes do django e fico tranquilo, pois não da erro algum ;)

$ python manage.py runserver

dentro do diretorio do projeto

da você acessa localhost:8000/seuprojeto

SIM MAIS UMA BRONCA

O Ubuntu 8.04 vem com o firefox 3beta5 e na boa ele não ta bom, remova usando o proprio apt-get e instale o firefox-2 “apt-get install firefox-2″

Espero ter ajudado, duvidas no não entendimento deste texto, nem eu seu se entenderia mande comentários com suas duvidas que no que poder ajudar to ae ;)

E outra coisa, todos os problemas que tive com o Ubuntu 8.04 não são broncas criticas do sistema, são na realidade problemas que te irritam mais todos passiveis a correção.

pixies @ slack-pe

www.slack-pe.org

quem madou eu ir usar ubuntu ;)

Primeiro post

Maio 1, 2008

Bem,

Hoje estou eu, começando no mundo django, e estou gostando, neste espaço eu e mais alguns amigos estaremos publicando informações sobre desenvolvimento, seja Estruturado, Orientado a Ganbiarra, Orientado a Objetos ou o que mais aparecer por ae…

Esta é a primeira publicação…