Páginas

27 de marzo de 2015

[Programación] El framework web en Python más rápido: wheezy.web

wheezy_web_logo


wheezy.web no tiene logo; la imagen la hice yo en GIMP.

Desde hace mucho tiempo dejé de programar en Python, pero eso no impide que comparta con vosotros las tecnologías que conozco ;). Tiempo atrás me enfrasqué en la búsqueda del “mejor” framework web en Python, ya que el que usaba (Web2Py) era endemoniadamente lento. Mi investigación me llevó hasta wheezy.web ; los que lo conocen seguramente lo hayan hecho a través del espectacular benchmark que hizo el autor en su blog:


python-fastest-web-framework


Lo sé, 25.000 solicitudes por segundo en comparación con el resto de frameworks es una auténtica pasada. Yo mismo usé wheezy.web durante un tiempo y he de decir que es una auténtica obra de arte. Mires por donde lo mires: la rapidez, la simplicidad, la seguridad… Todo. Y encima es el trabajo de una única persona: Andriy Kornatskyy.



  • Funciona con Python 2, Python 3 y PyPy. Aunque el 3 dé mejor rendimiento, es preferible seguir usando el 2 hasta que el 3 madure lo suficiente.

  • Su diseño es modular, por lo que wheezy.web son más cosas: wheezy.template, wheezy.html, wheezy.security… Usa las partes que quieras.

  • Documentación sencilla y fácil de entender.

  • Optimización automática del HTML (lo comprime para que ocupe menos sin necesidad de usar herramientas externas).

  • Como no podía ser de otra manera, es software libre y código abierto ;D.

  • etc…


En el blog de Andriy hay magníficos tutoriales para instalar wheezy.web a secas o con i18n (múltiples idiomas); también explica cómo usar wheezy.web con Nginx. El inconveniente de todos sus tutoriales es que asume que usas Debian, ya que él no ha probado en otras distros.


Si usas Fedora y te interesa wheezy.web, ¡estás de suerte! Aquí tienes el comando que instalará los paquetes necesarios para poder seguir sus tutoriales:


sudo dnf install python python-devel python3 python3-devel python-setuptools python-virtualenv libxml2 libxml2-devel libxslt libxslt-devel libmemcached libmemcached-devel memcached memcached-devel gzip ntpdate gettext uwsgi uwsgi-plugin-python socat nginx


El tutorial que ofrece Andriy para instalar wheezy.web con Nginx usa un script pensado específicamente para Debian, por lo que tendréis que hacerlo por vuestra cuenta si usáis un sistema distinto. En mi caso me basta con uWSGI, por lo que nunca lo he intentado.

La verdad es que existiendo wheezy.web me parece un crimen utilizar otro framework, así que si trabajas con Python, ¡échale un vistazo como mínimo! La única desventaja que se le puede achacar es que no trae ninguna capa de abstracción para facilitar el trabajo con bases de datos (ni falta que hace, pero hay gente que lo agradece).


Y esto ha sido todo. Un artículo breve, pero de relevancia. ¡Prometo traer más tecnologías interesantes! Nos vemos~.


Por cierto, una curiosidad, ¿sabéis por qué se llama “wheezy”? Andriy es fan de Debian. Ahí lo dejo ;).







from Desde Linux http://feedproxy.google.com/~r/UsemosLinux/~3/k6AUrfk9QZg/

via IFTTT