TECH4GEEKS-LOGO-HEADER
Oxary Magazine
$10 – $15 / Week

9 servidores web Python para probar en su próximo proyecto

En esta lista presentamos varios Servidores web Python puede usar para implementar sus aplicaciones de Python.

Comenzaremos por comprender cómo funcionan los servidores web y la necesidad de interfaces de puerta de enlace del servidor. A continuación, revisaremos la lista de servidores web de Python junto con sus características principales. La mayoría de ellos están disponibles como Paquetes PyPI que puedes instalar y empezar a usar en tus proyectos.

¡Empecemos!

Qué es un servidor Web?

Al desarrollar una aplicación de Python, utilizará el servidor de desarrollo para probar su aplicación. Sin embargo, una vez que se complete el desarrollo, deberá implementar su aplicación en un servidor de producción. Entre varias capas adicionales de funcionalidad, un servidor web debe tener la funcionalidad básica de un servidor HTTP.

Python-servidor web

El servidor web de Python debe poder manejar solicitudes HTTP (solicitudes HTTP simples como GET, PUT y POST) de clientes, como navegadores web, y devolver la respuesta. Esta respuesta puede incluir el código de estado HTTP que indica si la solicitud se procesó correctamente o no. Pueden ser páginas web HTML y datos semiestructurados como JSON, XML, etc.

ASGI vs WSGI: comprensión de las interfaces de puerta de enlace del servidor

Suponga que ha desarrollado una aplicación de Python en un marco de su elección, por ejemplo, Django o Flask. Es posible que un servidor convencional no pueda comprender y procesar las solicitudes realizadas a la aplicación Python. Aquí es donde entran en juego las interfaces de la puerta de enlace del servidor.

Esta interfaz de puerta de enlace puede ser una interfaz de puerta de enlace de servidor web (WSGI) o una interfaz de puerta de enlace de servidor asíncrono (ASGI). El servidor web recibe una solicitud de un cliente, que luego redirige a la interfaz de puerta de enlace del servidor. La interfaz (WSGI/ASGI) interactúa con la aplicación Python a través de un invocable expuesto.

python-servidor-web-asgi-wsgi

La interfaz de puerta de enlace del servidor web (WSGI) maneja las solicitudes secuencialmente. Si hay varias solicitudes HTTP lentas, afectarán el rendimiento.

  Cómo vincular su teléfono Android a la PC usando Windows & Phone Link App Link

Interfaz de puerta de enlace de servidor asíncrono, o ASGI, es un sucesor de WSGI y tiene la capacidad adicional de manejar solicitudes de forma asíncrona.

Supongamos que una solicitud actualmente procesada requiere una lectura de la base de datos (que potencialmente puede llevar mucho tiempo) y espera la respuesta. Cuando la primera solicitud está esperando una respuesta, ASGI puede manejar una segunda solicitud entrante.

Esto contrasta con WSGI, donde la primera solicitud debe procesarse antes que la segunda. Por lo tanto, el uso de ASGI puede dar como resultado un mayor rendimiento. ASGI también le permite usar Python asíncrono capacidades dentro de su aplicación.

Servidores web Python

Ahora, enumeremos los servidores web que puede usar para sus aplicaciones de Python. También hemos incluido algunos marcos que brindan soporte inmediato para servidores listos para producción. Esta lista no es exhaustiva y las siguientes recomendaciones de servidores web no están en ningún orden en particular.

uvicornio

Si está familiarizado con el desarrollo de aplicaciones con FastAPI, se ha topado con uvicornio, una implementación de servidor web. Uvicorn es una implementación de servidor ASGI para Python.

python-servidor-web-uvicorn

Para instalar Uvicorn y las dependencias relacionadas mediante pip, ejecute el siguiente comando:

$ pip install uvicorn[standard] 
# includes installation of optional and Cython-based dependencies

Estas son las principales características de Uvicorn:

  • implementación ASGI
  • Compatibilidad con la ejecución de aplicaciones desde un entorno Python asíncrono
  • La herramienta de línea de comandos con una larga lista de opciones
  • Admite aplicaciones que se ejecutan desde las funciones de fábrica
  • Proporciona funcionalidad para controlar las instancias del servidor mediante programación

gunicornio

gunicornio es un servidor WSGI para aplicaciones Python, muy conocido por sus funciones avanzadas de gestión de procesos.

gunicorn-python-servidor web

Uvicorn ofrece una clase de trabajo de Gunicorn, lo que le permite obtener beneficios de gestión de procesos y rendimiento simultáneamente. Esta página de documentación contiene detalles sobre desplegar gunicornio.

Si tiene Python 3.5 y posterior, puede instalar Gunicorn usando pip:

$ pip install gunicorn

Estas son las principales características de Gunicorn:

  • Sencillo y rápido
  • Compatible con muchos marcos web
  • Soporte para usar con un servidor proxy HTTP
  • Gestión avanzada de procesos

cerezapy

cerezapy es un marco web de Python, al igual que Django, Flask y FastAPI, pero no tan popular como esos marcos. Con varios lanzamientos estables, CherryPy ha existido y se ha convertido en un marco completo durante más de una década. También tiene soporte comunidad de desarrolladores.

  Aprende a codificar de forma divertida en estas 7 plataformas

cereza

Puedes consultar los interesantes Zen de CherryPyque transmite la esencia de que CherryPy es un marco simple y minimalista pero poderoso.

CherryPy es un marco de Python y no un servidor web, pero está en nuestra lista porque admite de forma nativa un servidor de producción, a diferencia de la mayoría de los otros marcos.

Para instalar CherryPy y comenzar, ejecute:

$ pip install CherryPy

Estas son las principales características de CherryPy:

  • Marco Pythonic usando Python orientado a objetos; muy adecuado para principiantes
  • Soporte para un servidor HTTP listo para producción, cigarro
  • Más fácil de aprender que otros marcos web, como Django
  • Soporte para construir e implementar aplicaciones web simples en microservicios

Dafne

Django es uno de los marcos web de Python más populares. Si ha desarrollado aplicaciones con Django, probablemente haya utilizado el Dafne Servidor web. Daphne es una de las primeras implementaciones de servidor ASGI que se utiliza como punto de referencia para las implementaciones de servidor ASGI.

Daphne está disponible como un paquete PyPI que puede instalar usando pip.

$ pip install daphne

Aquí hay un tutorial detallado que lo guiará a través de la creación de una aplicación completa de Python lista para producción.

video de Youtube

Estas son las principales características de Daphne:

  • Ampliamente adoptado en entornos de producción
  • Referencia para todas las implementaciones de servidores ASGI
  • Compatibilidad con los protocolos HTTP, HTTP2 y WebSocket

trío pitón

los proyecto trío tiene como objetivo proporcionar capacidades de E/S asincrónicas de grado de producción: soporte para E/S paralelas y concurrencia. Este proyecto también tiene varias bibliotecas web y HTTP Python.

image 13

Puede instalar la última versión de Trio (junio de 2022) desde PyPI.

$ pip install trio

Aquí hay una lista de bibliotecas Trio útiles para la programación web con Python:

  • hypercorn: Hypercorn es un servidor ASGI que admite HTTP
  • muffin: Muffin es un marco web ASGI para Python
  • startlette: Starlette es un marco ASGI ligero
  • trio-websocket: Servidor WebSocket y soporte al cliente
  • httpx: cliente HTTP para Python

lienzo retorcido

Retorcido es un marco para aplicaciones de Python. Este marco de eventos incluye un módulo de programación web llamado twisted.web.

  Cómo y cuándo borrar la caché de WordPress

Puede instalar Twisted y módulos relacionados usando pip:

$ pip install Twisted

Estas son las principales características de Twisted:

  • Funciones fáciles de usar para desarrolladores, como pruebas unitarias y verificación de código estático
  • twisted.web proporciona un servidor WSGI y soporte para clientes y servidores HTTP

AIOHTTP

AIOHTTP es una biblioteca de Python que proporciona funcionalidad del lado del cliente y del servidor a través de API de cliente y servidor.

Aquí hay un video útil que explica las capacidades de programación asincrónica del lado del cliente para acelerar drásticamente las solicitudes a las API.

video de Youtube

Estas son las principales características de AIOHTTP:

  • Compatibilidad con funciones de cliente y servidor HTTP
  • Soporte de registro para una fácil depuración; proporciona registro para cliente, servidor, sockets web, etc.
  • Soporte nativo para pruebas a través del complemento pytest para pruebas: pytest-aiohttp, que está disponible como paquete PyPI

Tornado

Tornado es otro marco web de Python que admite redes asíncronas. En los últimos años, ha habido muchos lanzamientos estables de Tornado: la versión 6.2 más reciente se lanzó en julio de 2022. Actualmente, Tornado es compatible con Python 3.7 y versiones posteriores.

image 12

Como la mayoría de los paquetes de esta lista, Tornado también se puede instalar usando pip:

$ pip install tornado

Estas son las principales características de Tornado:

  • Compatibilidad con tornado.httpsserver y servidor HTTP de cliente
  • Escalable y utiliza E/S de red sin bloqueo
  • Muy adecuado para aplicaciones que requieren conectividad durante un intervalo de tiempo significativamente más largo
  • Utilidades para registro, pruebas unitarias, etc.
  • Perfecta integración con los servicios de autenticación

Meinheld

Meinheld es un servidor WSGI para Python. Utiliza y crea bibliotecas existentes para el manejo de eventos y el procesamiento de solicitudes HTTP.

Puedes instalar Meinheld usando pip:

$ pip install meinheld

Algunas características de Meinheld:

  • Utiliza la biblioteca http-parser para manejar las solicitudes HTTP entrantes
  • Se basa en la biblioteca picoev para el manejo de eventos

Conclusión

Espero que haya encontrado útil esta lista de servidores web de Python. Asegúrese de probarlos en sus proyectos futuros. Hemos enumerado las características clave; Para comprender completamente las dependencias y cómo funcionan, deberá usarlas en sus aplicaciones. 👩🏽‍💻

Si desea mejorar sus habilidades con Python, considere consultar la biblioteca de tutoriales de Python de Geekflare. ¡Feliz codificación!

Fuente

Etiquetas

Comparte en:

Ultimos Post

Categorias

Lorem ipsum dolor sit amet, consectetur adipiscing elit eiusmod tempor ncididunt ut labore et dolore magna

Deja una respuesta

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore