Flask

  • Werkzeug es una librería de utilidades HTTP y WSGI para Python. El microframework Flask está basado en Werkzeug, esto significa que es posible implementar sesiones en aplicaciones Flask utilizando los módulos y clases provistos por Werkzeug.

    Dicho esto, Werkzeug incluye el módulo Sessions, el cual provee clases para el manejo de sesiones. En este artículo voy a demostrar cómo implementar sesiones almacenadas en el filesystem (como archivos, similar a lo que hace PHP por defecto) utilizando la clase FilesystemSessionStore.

  • Actualmente me encuentro con la oportunidad de ver nacer una startup. Más bien me toca ser parte de una startup, como responsable de toda decisión tecnológica sobre el proyecto, y participando activamente en su desarrollo como líder de un equipo de 1 integrante (yo :P estamos en proceso de reclutamiento de desarrolladores).

    Es común que cuando alguien tiene experiencia con PHP, al momento de encarar un nuevo desarrollo Web vaya como burra al trigo a lo que ya conoce. PHP es una porquería pero al final de día logra hacer el trabajo, mal que mal. Sin embargo, en esta ocasión me zambullí a la pileta y aposté todo por Python. Creo que dada la potencia de Python, disponibilidad de módulos y muchas otras ventajas, vale la pena la apuesta a largo plazo. Además creo personalmente que, más a corto que largo plazo, me va a permitir desarrollar componentes mucho más rápido que PHP.

    Ahora bien, para implementar aplicaciones Python en Internet es necesario contar con una interfaz al lenguaje, similar a CGI: WSGI. Y también es necesario un servidor HTTP frontend (para servir contenido estático e incluir soporte para TLS, mecanismos de caching, etc.): Nginx. ¿Por qué Nginx y no Apache? Porque es un servidor HTTP más flexible, eficiente y liviano.

    Por último, es altamente recomendable contar con algún tipo de middleware que presente una capa de abstracción a la aplicación Python, para no tener que lidiar con los detalles de bajo nivel de WSGI (parseo de URLs, recuperación de parámetros GET/POST, cookies, headers HTTP, y toda la "magia" que ignoramos al momento de desarrollar en lenguaje PHP porque la hace por nosotros). Cabe destacar que WSGI es una interfaz de más bajo nivel que CGI y se desentiende de su implementación (puede ser multi-procesos o multi-hilada). Para este desarrollo decidí inclinarme por Flask, un microframework de desarrollo de aplicaciones Python basado en el middleware Werkzeug.

    En este artículo voy a compartir mi experiencia montando un servidor Web Nginx con soporte para Python a través de uWSGI, con el objetivo de servir una aplicación desarrollada utilizando el microframework Flask.

  • Anteriormente demostré cómo implementar sesiones en Werkzeug, las cuales pueden ser utilizadas dentro de aplicaciones Flask (pues está basado en Werkzeug). Sin embargo, Flask provee su propia implementación de sesiones implementadas utilizando cookies. Este artículo explica su uso básico y funcionamiento.

  • Luego de haber hecho mis primeros pasos con pyVmomi y creado mis primeros scripts, he desarrollado una pequeña aplicación Web basada en Flask para monitorear y reportar con gráficas HTML5 el uso de mis datastores VMware.