Pedro Valencia

Estudiante de Ingeniería Civil en Computación de la Universidad de Chile

Tutorial de Pylons 1era Parte

Ambiente Virtual (virtualenv)

La mejor forma de trabajar en pylons es mediante virtualenv.

Para iniciar un entorno virtual libre de todos los paquetes que hayamos instalado anteriormente en nuestro sistema, debemos correr el script recientemente bajado:

$ python virtualenv.py --no-site-packages [NOMBRE]

De esta forma tendremos un ambiente de python definido en la carpeta [NOMBRE] (desde ahora devenv). Podemos ahor usar python mediante:

$ devenv/bin/python
Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

o utilizando el comando source:

$ source devenv/bin/activate
$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Vamos a asumir que usamos el comando source.

Instalando Pylons

Para instalar pylons utilizaremos easy_install de forma usual pero sin utilizar poderes de superusuario.

$ easy_install Pylons==1.0

Realizando esto tendremos instalado en nuestro entorno el comando paster que nos permite crear el proyecto, levantar un servidor de desarrollo, crear un egg, etc. (más info).

Creando el proyecto

Para crear el proyecto utilizaremos el comando paster:

$ paster create --template=pylons SimpleBlog

Paster nos ofrece el comando create que obviamente crea un proyecto con un cierto template especificado por --template=pylons y un nombre que en este caso es SimpleBlog. Nos preguntará si deseamos usar Mako Templates, pondremos la opción por defecto, y SqlAlchemy, en este caso escribimos True. Ahora estamos listos para comenzar a desarrollar el proyecto.

Mako y SqlAlchemy

Mako es un sistema de templates hecho y basado en python que nos permite facilmente separar la capa de visualización de la lógica de negocios. Es la biblioteca de template de Pylons por defecto, pero se puede utilizar cualquiera de las existentes.

SqlAlchemy es la biblioteca por excelencia de python para manejar bases de datos, tiene muchas características interesantes. Puede ser reemplaza por otra en un proyecto de Pylons, pero realmente es recomendable usarla.

Estructura del proyecto

Pylons al igual que todos los frameworks de desarrollo web tiene una estructura de directorios para el desarrollo.

|-- development.ini
|-- setup.py
|-- simpleblog
|   |-- config
|   |   |-- deployment.ini_tmpl
|   |   |-- environment.py
|   |   |-- __init__.py
|   |   |-- middleware.py
|   |   `-- routing.py
|   |-- controllers
|   |   |-- error.py
|   |   `-- __init__.py
|   |-- __init__.py
|   |-- lib
|   |   |-- app_globals.py
|   |   |-- base.py
|   |   |-- helpers.py
|   |   `-- __init__.py
|   |-- model
|   |   |-- __init__.py
|   |   `-- meta.py
|   |-- public
|   |   |-- bg.png
|   |   |-- favicon.ico
|   |   |-- index.html
|   |   `-- pylons-logo.gif
|   |-- templates
|   |-- tests
|   |   |-- functional
|   |   |   `-- __init__.py
|   |   |-- __init__.py
|   |   `-- test_models.py
|   `-- websetup.py
|-- SimpleBlog.egg-info
`-- test.ini

Casi todo el desarrollo se realizará en la carpeta simpleblog, por lo que la estructura de esta es de gran importancia.

Dado que paster nos da una estructura estandar de un paquete python, podemos usar sus ventajas. La más interesante, buildutils, y la posibilidad de llamar al comando:

$ python setup.py develop

que nos implementa todo el ambiente de desarrollo necesario, en esta caso instalar SqlAlchemy.

A esta altura es posible ya verificar que nuestro proyecto funciona, utilizando el servidor de desarrollo que nos facilita paster mediante el comando:

$ paster serve --reload development.ini
Starting subprocess with file monitor
Starting server in PID 4284.
serving on http://127.0.0.1:5000

Continuará...

Comenzando mi Blog

Creo que voy a iniciar un blog sobre como avanzo en mis proyectos. Por el momento sólo probaré jekyll en github.