Python Web
06.03.2006
14:48
Uhr
Página
57
Python • DESARROLLO
Web.py, un framework muy ligero.
WEBS EN 10 SEGUNDOS
Después de tanto framework, librerías y plataformas web enormes ya era hora de que alguien nos diese algo divertido. POR JOSÉ MARÍA RUIZ
onocí a Aaron Swartz en la Startup School 2005, en Cambridge, EEUU. Es muy joven, no tendrá más de 20 años, y uno delos protegidos de Paul Graham en YCombinator. Hablé con él durante una media hora y me pareció muy inteligente. En ciertos ámbitos es considerado un genio. Aaron ha crecido con la Web, fue uno de los creadores del estándar RSS, para más detalles ver Recursos [1].
C
Web.py
Cuando se escribe este artículo, Web.py no pasa de la versión 0.13 y tiene un tamaño de poco más de 55KBytes, pero nohay que dejarse engañar por su tamaño. En su programación, Aaron ha hecho uso de las más sofisticadas técnicas de Python, la MetaProgramación entre ellas. Web.py genera métodos y clases bajo demanda, convirtiendo toda la interacción con bases de datos y la web en un juego de niños. Todo se realiza a través de clases y métodos. Los nombres de ambos han sido escogidos con cuidado para que sean cortosy fáciles de recordar. ¡Adiós a las montañas de documentación! En su propia página se auto define de «anti-framework».
una idea en mente: que sea completamente modular. Así podríamos usar otro sistema de templates u otro conector con bases de datos, por ejemplo con MySQL. Si tenemos todo instalado podemos crear un directorio, donde trabajaremos y copiaremos en el mismo el fichero Web.py.Primera web… en 10 segundos.
Comencemos con un ejemplo muy simple usando el código que aparece en el Listado 1. Para arrancar el servidor sólo tenemos que ejecutar:
# python holamundo.py
Recuperando la web
Web.py es su apuesta para revitalizar la web, para volverla simple, como parte del movimiento Web2.0. Si Ruby on Rails simplificó las monstruosidades de J2EE y compañía, Web.py convierte eldesarrollo web en una cosa de niños. En menos de 10 segundos se puede tener funcionando una página web dinámica. Y es que mucha gente de la llamada Web2.0 quiere volver a los tiempos en los que usar la web era divertido, así que Aaron ha hecho de Web.py una herramienta muy potente y sencilla.
Ingredientes
Necesitaremos de Web.py, que se puede descargar de la URL que aparece en el Recurso [2].Además necesitaremos las librerías de Python: • Cheetah (Recurso [3]), que sirve para crear templates. • Psycopg (Recurso [4]), para el acceso a la base de datos Postgresql. Y por supuesto de Postgresql (Recurso [5]), la base de datos relacional. Haremos uso del sistema de paquetes que nuestra distribución emplee para instalar estas librerías y arrancaremos Postgresql si fuese necesario. TantoCheetah como Psycopg son opcionales, Web.py ha sido diseñado con
José María Ruiz actualmente está realizando el Proyecto Fin de Carrera de Ingeniería Técnica en Informática de Sistemas. Lleva 8 años usando y desarrollando software libre y, desde hace dos, se está especializando en FreeBSD.
Desgranemos el código. Lo primero que hacemos es importar web, Web.py. De esta manera tendremos acceso atodas sus funciones. Posteriormente definimos una lista que hemos llamado rutas. En ella definimos pares de ruta/objeto asociado. Cada vez que accedamos a Web.py éste buscará la ruta que encaje con la que hemos pedido y hará uso del objeto asociado. Definimos una clase llamada hola. En Web.py las clases son quienes «responden» a las peticiones. Para ello debemos definir un método GET o POST,dependiendo de qué tipo de petición queramos responder. Usando la función estándar print podemos crear la respuesta. En nuestro ejemplo, es tan simple, que ni siquiera creamos una página web, solo devolvemos «¡Hola mundo!» (Figura 1).
EL AUTOR
WWW.LINUX- MAGAZINE.ES
Número 16
57
057-060_Python
06.03.2006
14:48
Uhr
Página
58
DESARROLLO • Python
Listado 2: hola.html...
Regístrate para leer el documento completo.