Los mejores frameworks web en Python

frameworks web en python

El desarrollo de aplicaciones web en es uno de los pilares fundamentales hoy día dado que es una de las principales industrias del software.

Python permite prototipar aplicaciones y crear aplicaciones con calidad de producción en tiempo record gracias a sus características del lenguaje como:

  • Código interpretado.
  • Posibilidad de uso de interpretes avanzados.
  • Lenguaje mutiplataforma.
  • Tipado de variables fuerte y dinámico.
  • Sintaxis clara y simple.

Y uno de los componentes principales para el gran auge del desarrollo web en Python son sus frameworks de primer nivel que se pueden definir en 3 grupos: frameworks multipropósito o propósito general, microframeworks y frameworks orientados a alta concurrencia y rendimiento.

Comparativa de frameworks web de python

NombreTipo¿Async?Estrellas
GitHub
Forks
GitHub
Contrib.
GitHub
DjangoGeneralNo51.3K22.2K2K
TornadoGeneralSi19.4K5.2K334
TurboGearsGeneralNo7506629
FlaskMicroNo51.7K13.7K613
PyramidMicroNo3.4K861277
CherryPyMicroNo1.2K295108
FastAPIEficaciaSi19.7K1.3K180
SanicEficaciaSi14K1.3K249

Frameworks de propósito general en Python

Son frameworks que pueden usarse para cualquier propósito y generalmente vienen «con las pilas cargadas», que significa que traen muchas funcionalidades avanzadas por defecto, y a continuación se presentan los más populares.

Django

Es uno de los frameworks más conocidos para el desarrollo web en Python.

Es utilizado en aplicaciones como YouTube, Instagram, Pinterest, Nasa, New York Times o National Geographic entre muchos otros.

Caracteristicas principales de django son:

  • Diseño modular basado en aplicaciones y middlewares.
  • Panel de administración integrado.
  • Sistema de autenticación de usuarios integrado.
  • Sistema de migraciones de bases de datos avanzado.
  • Renderizado de plantillas avanzado.
  • Implementación tanto en forma de funciones o basada en clases.
  • ORM integrado en el framework.
  • Soporte de múltiples bases de datos.
  • Modelos de formularios integrados.
  • Amplia comunidad con multitud de ejemplos y tutoriales.

Una de las principales características a destacar es que cuenta con un Mapeo de objetos relacionales, u ORM (Object Related Mapping), que permite mapear objetos de una base de datos relacional de forma extremadamente sencilla e intuitiva.

Primera aplicacion django

Las aplicaciones django se pueden extender como aplicaciones de una aplicación común, y se pueden añadir más middlewares que intercepten las peticiones del usuario de forma simple y aislada.

Se puede descargar usando pypi o en https://www.djangoproject.com/ y se puede estudiar el tutorial oficial muy completo en https://docs.djangoproject.com/es/3.1/intro/tutorial01/

Tornado

Se trata de un framework web orientado capaz de soportar decenas de miles de conexiones abiertas concurrentemente, por lo que se utiliza para aplicaciones de gran volumen de peticiones por segundo.

Las principales características de este framework son:

  • Orientado a realizar operaciones no bloqueantes de entrada salida.
  • Tiene soporte para renderizado de plantillas.
  • Ideal para aplicaciones que utilicen web sockets o long-pulling.
  • Permite el uso de clases para el manejo de peticiones.
  • Integración perfecta con asyncio.

Se puede descargar usando pypi y la documentación se encuentra aquí https://www.tornadoweb.org

TurboGears

Es un framework que aboga por unir las funcionalidades de microframeworks y de los frameworks más grandes como django, permitiendo que se puedan crear aplicaciones pequeñas que vayan escalando con las necesidades del proyecto.

Las principales características de TurboGears son:

  • Estructura de microframework escalable.
  • Renderizado de plantillas – Genshi.
  • ORM externo – SQLAlchemy.
  • Permite extender por medio de aplicaciones aisladas.
  • Desarrollo activo de mejoras visible en la versión 2.

Se puede consultar la documentación de este framework en https://turbogears.readthedocs.io/en/latest/ y explorar el tutorial oficial aquí.

Microframeworks en Python

Los microframeworks están orientados a crear aplicaciones con la mínima cantidad de librerías incluidas, e ir añadiendo cada componente poco a poco supliendo las necesidades del proyecto.

Flask

Flask es uno de los frameworks más utilizados dado que fue uno de los pioneros en el ambito de los microframeworks, permitiendo crear aplicaciones pequeñas, modulares y escalables.

Algunas de sus características principales son las siguientes:

  • Sintaxis simple y pythonica usando decoradores.
  • Enrutado por medio de decoradores.
  • Capacidad de ser extendido por medio de Blueprints (aplicaciones).
  • Uso de Jinja para el sistema de renderizado de plantillas.
  • No tiene ORM propio pero se integra fácilmente con SQLAlchemy.

Gracias a su versatilidad permite crear aplicaciones simples en cuestión de minutos, que pueden escalar a sistemas con multiples aplicaciones con diferentes microservicios fácilmente.

Se puede descargar y consultar la documentación en https://flask.palletsprojects.com/

Pyramid

Pyramid es un caso más extremo que Flask dado que aboga por permitir crear aplicaciones incluso en un mismo fichero Python en el menor tiempo posible.

Algunas de sus características principales son las siguientes:

  • Sintaxis simple.
  • Soporte de diferentes motores de renderizado.
  • Orientado a mini aplicaciones que puedan escalar.
  • Permite escribir vistas como funciones o como clases.
  • Integración fácil para manejo de formularios con Deform y Colema.

Para más información sobre este framework se puede acceder a https://trypyramid.com/ o seguir la guía rápida de uso aquí.

CherryPy

Es un microframework orientado a objetos con más de 10 años de antiguedad lo que lo convierte en uno de los frameworks más veteranos. Sus principales características son:

  • Framework minimalista.
  • Orientado a objetos.
  • Capacidad de ser utilizado como servidor de otras aplicaciones WSGI.

Se puede encontrar la documentación aquí y seguir tutoriales de cómo utilizarlo aquí.

Frameworks de alta concurrencia o alto rendimiento en Python

La mayoría de aplicaciones webs pasan la mayor parte del tiempo realizando operaciones de entrada salida como pueden ser peticiones a una base de datos, apertura/cierre de ficheros o la espera de que cualquier evento ocurra.

Por tanto, se implementaron formas de aprovechar esos tiempos de espera de forma eficiente, mejorando la eficiencia de las aplicaciones por medio de la concurrencia y en particular, haciendo uso de asyncio.

Gracias al uso de asyncio y de las directivas de async/await y todos los mecanismos introducidos para su manejo en Python 3.5, han proliferado multitud de nuevos frameworks que mejoran con creces la eficiencia de los que no hacen uso de esta técnica.

FastAPI

Es un framework moderno enfocado en ofrecer una gran eficiencia y soportar un gran número de usuarios de forma concurrente, lo que está haciendo que se posicione rápidamente para convertirse en un referente utilizado en la industria.

FastAPI está construido utilizando diferentes frameworks como Starlette para mejorar la eficiencia o pydantic para la validación e implementación de modelos de datos, creando una perfecta combinación que ayuda a crear aplicaciones web altamente eficientes rápidamente.

Sus principales características son:

  • Utiliza la técnica de asyncio.
  • Se soporta en Starlette como framework web.
  • Tiene soporte para AWSGI para servidores asíncronos.
  • Permite la validación de datos efectiva usando Pydantic.
  • Rendimiento comparable a servidores escritos en NodeJS o Go.

Se puede encontrar en https://fastapi.tiangolo.com/ y el tutorial oficial aquí.

Sanic

Es un framework web construido para ofrecer un rendimiento excepcional, pudiendo ser el mas rápido de todos.

Las principales caracteristica que presenta son las siguientes:

  • Soporte de Python 3.6 o superior.
  • Permite el uso de sintaxis async/await.
  • Extensible usando blueprints.
  • Soporte de desarrollo de vistas usando clases.
  • Soporte de streaming y websockets.

Se puede extender via plugins de esta pagina web y la documentacion oficial esta aquí.

Libros sobre desarrollo web con Python recomendados

A continuación puedes encontrar algunos libros sobre desarrollo web usando Python recomendados.

Libros recomendados para aprender Python

Estos son los libros que pueden ayudarte a aprender Python, aprender a programar, tipos de datos, algoritmia y mucho más.

Disponible en:

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Ver más

  • Responsable: Oscar Ramirez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento: No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a ionos (1&1) que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Publicar un comentario