Cómo usar Django con Uvicorn

Uvicorn es un servidor ASGI basado en uvloop y httptools, con un énfasis en velocidad.

Instalando Uvicorn

Puedes instalar Uvicorn con pip:

python -m pip install uvicorn

Ejecutando Django en Uvicorn

Cuando se ha instalado Uvicorn, está disponible el comando uvicorn, que ejecuta aplicaciones ASGI. Uvicorn necesita ser llamada con la ubicación de un módulo que contenga un objeto de aplicación ASGI, seguido de lo que la aplicación se llama (separados por dos puntos).

Para un proyecto Django típico, invocar a Uvicorn tendría el siguiente aspecto:

python -m uvicorn myproject.asgi:application

Esto iniciará un proceso que escucha en 127.0.0.1:8000. Requiere que tu proyecto esté en el camino de Python; para asegurarte de ello ejecuta este comando desde la misma carpeta que tu archivo manage.py.

En modo de desarrollo, puedes agregar --reload para causar que el servidor se recargue cada vez que se cambie un archivo en disco.

Para una utilización más avanzada, por favor lee la documentación Uvicorn.

Desplegando Django utilizando Uvicorn y Gunicorn

Gunicorn es un servidor web robusto que implementa el monitoreo de procesos y reinicios automáticos. Esto puede ser útil cuando se ejecuta Uvicorn en un entorno de producción.

Para instalar Uvicorn y Gunicorn, utiliza lo siguiente:

python -m pip install uvicorn uvicorn-worker gunicorn

Luego arranca Gunicorn utilizando la clase de trabajador Uvicorn como sigue:

python -m gunicorn myproject.asgi:application -k uvicorn_worker.UvicornWorker