1
0
mirror of https://github.com/django/django.git synced 2024-12-30 13:05:45 +00:00
django/docs/howto/deployment/asgi/uvicorn.txt
Simon Willison 022a864a5d
Fixed #34109 -- Updated instructions for running with Uvicorn.
Co-authored-by: Paolo Melchiorre <paolo@melchiorre.org>
2022-10-26 11:51:15 +02:00

54 lines
1.7 KiB
Plaintext

==============================
How to use Django with Uvicorn
==============================
.. highlight:: bash
Uvicorn_ is an ASGI server based on ``uvloop`` and ``httptools``, with an
emphasis on speed.
Installing Uvicorn
==================
You can install Uvicorn with ``pip``::
python -m pip install uvicorn
Running Django in Uvicorn
=========================
When Uvicorn is installed, a ``uvicorn`` command is available which runs ASGI
applications. Uvicorn needs to be called with the location of a module
containing an ASGI application object, followed by what the application is
called (separated by a colon).
For a typical Django project, invoking Uvicorn would look like::
python -m uvicorn myproject.asgi:application
This will start one process listening on ``127.0.0.1:8000``. It requires that
your project be on the Python path; to ensure that run this command from the
same directory as your ``manage.py`` file.
In development mode, you can add ``--reload`` to cause the server to reload any
time a file is changed on disk.
For more advanced usage, please read the `Uvicorn documentation <Uvicorn_>`_.
Deploying Django using Uvicorn and Gunicorn
===========================================
Gunicorn_ is a robust web server that implements process monitoring and automatic
restarts. This can be useful when running Uvicorn in a production environment.
To install Uvicorn and Gunicorn, use the following::
python -m pip install uvicorn gunicorn
Then start Gunicorn using the Uvicorn worker class like this::
python -m gunicorn myproject.asgi:application -k uvicorn.workers.UvicornWorker
.. _Uvicorn: https://www.uvicorn.org/
.. _Gunicorn: https://gunicorn.org/