---
title: "Deploying Django"
version: 3.0
locale: en
source: https://docs.djangoproject.com/en/3.0/howto/deployment/
canonical: https://djangodocs.dev/en/3.0/howto/deployment/
---
# Deploying Django

Django is full of shortcuts to make Web developers’ lives easier, but all
those tools are of no use if you can’t easily deploy your sites. Since Django’s
inception, ease of deployment has been a major goal.

There are many options for deploying your Django application, based on your
architecture or your particular business needs, but that discussion is outside
the scope of what Django can give you as guidance.

Django, being a web framework, needs a web server in order to operate. And
since most web servers don’t natively speak Python, we need an interface to
make that communication happen.

Django currently supports two interfaces: WSGI and ASGI.

- [WSGI](https://wsgi.readthedocs.io/en/latest/) is the main Python standard for communicating between Web servers and
  applications, but it only supports synchronous code.
- [ASGI](https://asgi.readthedocs.io/en/latest/) is the new, asynchronous-friendly standard that will allow your
  Django site to use asynchronous Python features, and asynchronous Django
  features as they are developed.

You should also consider how you will handle [static files](/en/3.0/howto/static-files/deployment/) for your application, and how to handle
[error reporting](/en/3.0/howto/error-reporting/).

Finally, before you deploy your application to production, you should run
through our [deployment checklist](/en/3.0/howto/deployment/checklist/) to ensure that your
configurations are suitable.

- [How to deploy with WSGI](/en/3.0/howto/deployment/wsgi/)

  - [How to use Django with Gunicorn](/en/3.0/howto/deployment/wsgi/gunicorn/)
  - [How to use Django with uWSGI](/en/3.0/howto/deployment/wsgi/uwsgi/)
  - [How to use Django with Apache and `mod_wsgi`](/en/3.0/howto/deployment/wsgi/modwsgi/)
  - [Authenticating against Django’s user database from Apache](/en/3.0/howto/deployment/wsgi/apache-auth/)
  - [The `application` object](/en/3.0/howto/deployment/wsgi/#the-application-object)
  - [Configuring the settings module](/en/3.0/howto/deployment/wsgi/#configuring-the-settings-module)
  - [Applying WSGI middleware](/en/3.0/howto/deployment/wsgi/#applying-wsgi-middleware)
- [How to deploy with ASGI](/en/3.0/howto/deployment/asgi/)

  - [How to use Django with Daphne](/en/3.0/howto/deployment/asgi/daphne/)
  - [How to use Django with Uvicorn](/en/3.0/howto/deployment/asgi/uvicorn/)
  - [The `application` object](/en/3.0/howto/deployment/asgi/#the-application-object)
  - [Configuring the settings module](/en/3.0/howto/deployment/asgi/#configuring-the-settings-module)
  - [Applying ASGI middleware](/en/3.0/howto/deployment/asgi/#applying-asgi-middleware)
- [Deploying static files](/en/3.0/howto/static-files/deployment/)

  - [Serving static files in production](/en/3.0/howto/static-files/deployment/#serving-static-files-in-production)
  - [Learn more](/en/3.0/howto/static-files/deployment/#learn-more)
- [Error reporting](/en/3.0/howto/error-reporting/)

  - [Email reports](/en/3.0/howto/error-reporting/#email-reports)
  - [Filtering error reports](/en/3.0/howto/error-reporting/#filtering-error-reports)
- [Deployment checklist](/en/3.0/howto/deployment/checklist/)

  - [Run `manage.py check --deploy`](/en/3.0/howto/deployment/checklist/#run-manage-py-check-deploy)
  - [Critical settings](/en/3.0/howto/deployment/checklist/#critical-settings)
  - [Environment-specific settings](/en/3.0/howto/deployment/checklist/#environment-specific-settings)
  - [HTTPS](/en/3.0/howto/deployment/checklist/#https)
  - [Performance optimizations](/en/3.0/howto/deployment/checklist/#performance-optimizations)
  - [Error reporting](/en/3.0/howto/deployment/checklist/#error-reporting)
