terça-feira, 3 de julho de 2007

Pylons

Esse texto é baseado em um e-mail que eu mandei para a lista PythonBrasil, porém mais completo que o e-mail.


Pylons é uma das opções que o desenvolvedor Python tem dentro dos frameworks para desenvolvimento web.

Um dos seus diferenciais é que ele é todo centrado em WSGI - Web Server Gateway Interface, que é uma PEP que descreve como os aplicativos devem se comunicar com o servidor web. Qual a vantagem disso? Uma modularização razoavelmente padronizada que é totalmente interessante.


Suporta SQLObject e SQLAlchemy (a maioria atualmente esteja dando preferência ao último). Embora o SQL Alchemy use o padrão de projeto DataMapper é possível transformá-lo em um ActiveRecord usando o Elixir. Isso com certeza irá agradar os usuários do rails.


Não só isso – a integração com JavaScript é feita à la Rails, incluindo os helpers com suporte a Prototype e Scriptaculous e o sistema de despacho do Pylons é baseado no do Ruby (Routes).


Usando os mecanismos do WSGI, a autenticação pode ser feita por um middleware, o AuthKit. Para algo ultra-simples, um cadastro que apenas um usuário vá usar, é possível gerar um formulário de login usando apenas as configurações do middleware. Simples e funcional.


Quais seriam as vantagens desses middlewares e do amplo suporte a WSGI? Um exemplo simples: você tem uma aplicação com o Pylons, e precisa adicionar um wiki a ela. É fácil desenvolver um, mas que tal usar o MoinMoin? Mas e a base de usuários, terei de duplicar? Bom, como o MoinMoin também implementa interfaces pra WSGI, você embute ele em um controlador e usa a própria autenticação do AuthKit. Interessante não?


Para modelos, o Pylons usa o Buffet, que é uma API de intercambiabilidade de motores de modelo. No cardápio, Myghty, Mako, Genshi e Kid e Cheetah (por enquanto).

Dos três principais frameworks pra web em Python (Django[2003-2004],TurboGears[início de 2005] e Pylons[fim de 2005]), o Pylons é o mais novo. Mas nem por isso deixa de surpreender: a movimentação para o TurboGears 2.0 é que ele seja implementado em cima do Pylons! Só por esse tipo de notícia já vale a pena colocar o Pylons na sua lista de coisas a testar!

blog comments powered by Disqus