Herramientas trendy en Python

Herramientas trendy en Python

Python es considerado en la actualidad como uno de los lenguajes de programación más populares en el mundo de la computación. Las características de simplicidad de la sintaxis, tipado dinámico y facilidad de iteración, han hecho de Python un lenguaje muy accesible para distintos niveles de conocimiento, sin comprometer funciones avanzadas para proyectos grandes.

Dentro de las principales aplicaciones de Python en la industria, se encuentra justamente el desarrollo web, y más específicamente, el desarrollo backend. Sin embargo, pese a la simplicidad del lenguaje y la versatilidad de la librería estándar, desarrollar un servicio web desde cero, es todavía una tarea bastante compleja y requiere de amplio conocimiento del lenguaje en sí y de los protocolos de comunicación entre servicios web, como ser HTTP. Es por esto que, para desarrollar un servicio o aplicación web se suelen utilizar frameworks específicos para desarrollo web disponibles como proyectos Open Source.

Un framework web es un conjunto de herramientas, funciones y patrones de arquitectura que permiten el desarrollo ágil de servicios y aplicaciones web. La diferencia entre un framework y una librería es que, generalmente, el framework incluye una forma o estructura básica que el proyecto debe seguir para poder ser aprovechado al máximo. Una librería solamente brinda funciones e interfaces para realizar ciertas tareas, no exige ni sugiere al desarrollador una forma de estructurar el proyecto. En este artículo, comparto los 5 frameworks web para desarrollar aplicaciones modernas con Python.

¿Cómo son esos frameworks?

Los siguientes frameworks presentan un potencial bastante interesante para desarrollar una aplicación web con todas las características necesarias en la actualidad, algunos de ellos por ser herramientas bastante establecidas en el desarrollo web con Python contando con un sinnúmero de proyectos desplegados en producción y una comunidad amplia y madura. Otros, destacan por su creciente uso en distintos tipos de proyectos como el desarrollo de microservicios y el uso de programación asíncrona para mejorar el rendimiento.

Todos ellos se caracterizan por ser excelentes puntos de partida para construir servicios web robustos de una manera ágil aprovechando las características del lenguaje de programación Python en un creciente mercado hambriento de soluciones innovadoras.

Django


Django es sin duda, uno de los frameworks web de Python más conocidos y utilizados en la actualidad. También es uno de los más maduros, teniendo su primer release en 2005.

Django se basa en el patrón MVT (Model-View-Template) que permite separar la lógica de acceso a datos (Modelos) de la lógica de negocios (Views) y la presentación y despliegue de los datos (Templates). Se caracteriza por su excelente integración con bases de datos relacionales populares a través de su ORM (Django ORM) y la cantidad de documentación y excelente comunidad que soporta el framework.

Es también conocido por ser un framework fullstack, permitiendo desarrollar todo el flujo de un servicio web en el mismo proyecto a través de sus motor de plantillas o templates.

Flask

Si bien Django se caracteriza por ser un framework bastante completo, Flask por su parte, se caracteriza por ser ligero y mínimo. Flask es también uno de los frameworks más populares por su simplicidad de uso y la cantidad de extensiones, plugins y complementos desarrollados por la comunidad.

Flask también cuenta con un enorme recorrido y amplia documentación y soporte de la comunidad. Generalmente Flask es utilizado en proyectos en los cuales se necesitan aplicaciones bastante específicas y ligeras como por ejemplo el desarrollo de microservicios o APIs REST. Sin embargo, Flask también permite usar de templates a través de Jinja2 por lo que se puede considerar un framework fullstack.

Tornado

Tornado es un framework asíncrono de Python que brinda un excelente rendimiento en proyectos con una gran cantidad de conexiones concurrentes. Tornado generalmente se usa para proyectos que requieran websockets o servicios con tráfico elevado que mantengan muchas conexiones abiertas de forma simultánea.

Una de las características más llamativas de este framework es que aprovecha al máximo el paradigma de ejecución asíncrona en Python mediante el módulo asyncio. Esto hace que los servicios desarrollados con Tornado sean extremadamente ligeros y eficientes en hardware limitado en recursos.

Starlette


Starlette es un framework ligero basado en ASGI, orientado al desarrollo de servicios web asíncronos con Python. Starlette cuenta con varias herramientas incorporadas como soporte de websockets, tareas en segundo plano, sesiones y cookies entre otras. Este framework se caracteriza por brindar una forma eficiente y simple de desarrollar servicios web aprovechando el enfoque de ejecución asíncrona con asyncio.

Starlette es bastante modular y flexible en el uso de sus componentes en conjunto o de forma aislada. El soporte de asyncio permite a Starlette integrarse con cualquier librería o herramienta de terceros que use este enfoque de programación. Starlette es una excelente opción para el desarrollo de microservicios.

FastAPI

Finalmente, es difícil hablar de frameworks web en Python sin mencionar a FastAPI. FastAPI es relativamente nuevo (2018), pero en los últimos años ha ganado bastante popularidad llegando a más de 50 mil estrellas en GitHub.

FastAPI se basa en Starlette, por lo que cuenta con todas sus características, pero además de eso, incluye una integración con pydantic, lo que permite agregar funciones avanzadas de validación de datos y generación de documentación de forma automática a través del estándar OpenAPI.

Otra característica importante de FastAPI es la excelente documentación con la que cuenta el proyecto haciendo del proceso de aprendizaje una experiencia para nada dolorosa.

FastAPI está principalmente orientado al desarrollo de APIs REST y microservicios altamente eficientes y ligeros, lo que lo convierte en una excelente opción para proyectos y aplicaciones que se despliegan en contenedores, conocidas como cloud-native.

Conclusión

Los frameworks descritos son excelentes opciones para desarrollar servicios web pues cada uno cuenta con características y opciones especiales que los diferencian.

La elección del framework correcto depende de las características específicas del proyecto pero la ventaja es que todos ellos están implementados en un lenguaje extremadamente fácil de usar y con una amplia comunidad como lo es Python.

⚠️
Las opiniones y comentarios emitidos en este artículo son propiedad única de su autor y no necesariamente representan el punto de vista de Revelo.

Revelo Content Network da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.