Continuando con el serial de top de frameworks de los principales lenguajes de programación, esta vez le toca el turno a Python. Considerado uno de los favoritos de los desarrolladores, cuenta con varios frameworks muy poderosos a la hora de crear aplicaciones. En las siguientes líneas haremos una lista de algunos de los más importantes.

Django

Quizá el framework por excelencia de Python. Quien conoce Python, al menos ha oído hablar de Django. Es, con diferencia, el mayor framework web basado en Python. Se apoya en una comunidad grande y activa. Cuenta con una potente interfaz de administración, así como otras muchas características que deberás ir descubriendo tú mismo. Django ofrece formularios model-based, tiene su propio lenguaje de plantillas y cuenta con una excelente documentación que está disponible de manera gratuita. Técnicamente, Django utiliza un ORM (Object Relational Mapper) para asignar sus objetos a tablas de base de datos. El mismo código funciona con diferentes bases de datos y facilita la portabilidad entre diferentes tipos de bases de datos. Django trabaja con PostgreSQL, MySQL, SQLite y Oracle. Otras bases de datos se pueden utilizar con controladores de terceros.

Django no es un sistema de gestión de contenidos (CMS) como Joomla, Drupal o WordPress; es necesario escribir el código para hacer una web que trabaje. Django se utiliza en sitios de alto tráfico como Disqus, Pinterest, Instagram y Mozilla. En Djangosites.org se puede encontrar una enorme lista de portales web realizados con Django.

Flask

Flask es un microframework que se creó originalmente como una broma del April Fools Day (como el día de los inocentes en EEUU) que derivó en un framework en solo un único archivo. Su principal intención es ser simple y pequeño; todo el framework consiste en un grupo de módulos. No hay un esqueleto o una estructura de la cual partir, todo se empieza con una página en blanco. Flask no proporciona grandes funcionalidades, pero hay extensiones Flask disponibles para agregar ORM, validación de formularios, manejo de carga, etc.

Flask es ideal, entre otras cosas, para aprender a programar y para ser utilizado por desarrolladores que se preocupan por las buenas prácticas y el código “elegante”, los que quieran crear prototipos de forma rápida y aquellos que necesitan una aplicación independiente. Flask se puede combinar con Jinja2, Mako, SQLAlchemy, Peewee, CouchDB, etc. para potenciar su funcionamiento.

Pyramid

Pyramid nació de la fusión entre Pylons 1.0 y repoze.bfg. Este framework viene con “pilas incluidas”, pero no hace ninguna suposición acerca de los componentes de tu sitio web. La comunidad Pyramid está creciendo rápidamente y cada día son más los desarrolladores que se suman al uso del framework. La documentación es excelente y permite a los desarrolladores avanzar sin tener que contar con el apoyo de la comunidad. Pyramid se esfuerza por ser minimalista, rápido y fiable. Fue uno de los primeros frameworks web que fue compatible con Python 3. Se considera la mejor opción si deseas un inicio rápido, si trabajas en proyectos con la API, para prototipar un concepto o para el desarrollo de aplicaciones web grandes, como un CMS o un KMS.

Web2py

El desarrollador líder de Web2py es Massimo Di Pierro, un profesor de Ciencias de la Computación que tiene su sede en Chicago. La plataforma tiene una documentación excelente, incluyendo un PDF de 600 páginas, con una introducción a Python. Si estás empezando en el desarrollo de Python, tendrás muchas preguntas, y Web2py puede tener respuestas para casi todo. Incorpora formularios generados que tienen validación de campo; las sesiones se almacenan del lado del servidor. El soporte de bases de datos incluye generación de SQL incorporada para las diez bases de datos más populares y Google App Engine.

Arquitectónicamente, Web2py sigue el Modelo-Vista-Controlador (MVC). No sigue la ruta de PHP de etiquetas incrustadas, sino que en su lugar genera HTML a partir del código. Una vez que haya definido sus modelos, obtendrá una interfaz administrativa completa de forma gratuita.