El desarrollo de aplicaciones web con Python sobre Zope, ahora más elegante
Antes, para desplegar una apliación había que instalar una gigantesca instancia de Zope e insertar tu código en su carpeta de productos.
Ahora, programar una aplicación consiste en programar un módulo Python e instalar solo las dependencias necesarias de módulos de zope.*
En su momento, una de las características que más sedujo a la comunidad fué el ZMI, el interfaz de administración web. Mediante el ZMI, es posible programar plantillas y scripts Python a través del navegador. Esta forma ágil ha hecho las delicias de programadores y no programadores que necesitaban publicar contenidos en la web y administrarlos de forma segura y en colaboración.
El ZMI, en seguida quedó en evidecia y dejó de manifiesto que para desarrollar grandes aplicaciones deja bastante que desear.
Desde casi el principio, todo desarrollo serio se hizo mediante la construcción de Productos Zope.
Ahora Zope3 ha llegado y ha impuesto, con su modelo de interfaces y adaptadores, un estilo sostenible de programación en zope. Además, recientemente, se propone un nuevo modo de desplegar las aplicaciones zope más modular y flexible.
Como adelantaba hace tiempo Jim Fulton, el enfoque de despliegue de zope3 debía romper con el tradicional definido desde timepos de zope2:
- instalar una instancia en que escucha un determinado puerto
- programar en Python tu aplicación, heredando de las clases necesarias para convertir tus objetos Python en zObjects
- insertar tu código en la carpeta de productos
Esta forma de trabajo comenzaba con la aplicación “mkzopeapp” que creaba la instancia inicial sobre la que programar. Ahora, con mkzopeapp y la redistribución de zope3 en forma de huevos Python, la cosa cambia.
Como nos cuenta Philipp Von Weiterhausen El ciclo de desarrollo será parecido a lo siguiente:
- crear un módulo Python. (mkzopeapp facilita esta tarea creando para ti un módulo con los imports básicos necesarios)
- definir los parámetros de desplpiegue mediante un fichero de configuración
- instalar las dependencias (servidores, lenguajes de plantillas, etc.) que están disponibles en los módulos zope.* aunque serán intercambiables por otros componentes de la comunidad Python.
La comunidad zope está trabajando duro en el tema de despliegue y ya se están viendo agradables resultados, ej:buildout, paste.deploy, etc.
Share your source code
Tagging the planet