mirror of
https://github.com/django/django.git
synced 2025-10-07 13:59:16 +00:00
Lines in the docs files were manually adjusted to conform to the 79 columns limit per line (plus newline), improving readability and consistency across the content.
61 lines
1.7 KiB
Plaintext
61 lines
1.7 KiB
Plaintext
==============================
|
|
How to use Django with Uvicorn
|
|
==============================
|
|
|
|
Uvicorn_ is an ASGI server based on ``uvloop`` and ``httptools``, with an
|
|
emphasis on speed.
|
|
|
|
Installing Uvicorn
|
|
==================
|
|
|
|
You can install Uvicorn with ``pip``:
|
|
|
|
.. code-block:: shell
|
|
|
|
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:
|
|
|
|
.. code-block:: shell
|
|
|
|
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:
|
|
|
|
.. code-block:: shell
|
|
|
|
python -m pip install uvicorn uvicorn-worker gunicorn
|
|
|
|
Then start Gunicorn using the Uvicorn worker class like this:
|
|
|
|
.. code-block:: shell
|
|
|
|
python -m gunicorn myproject.asgi:application -k uvicorn_worker.UvicornWorker
|
|
|
|
.. _Uvicorn: https://www.uvicorn.org/
|
|
.. _Gunicorn: https://gunicorn.org/
|