# Documentation Django 3.1.9.dev

# Déploiement de Django

Django est bardé de raccourcis pour simplifier la vie des développeurs Web, mais tous ces outils ne servent à rien si vous n’arrivez pas à déployer vos sites facilement. Dès la création de Django, la facilité de déploiement a constitué un objectif important.

Il existe de nombreuses façons de déployer une application Django, en fonction de l’architecture ou des besoins métiers particuliers, mais cette discussion sort du cadre de ce que Django peut offrir en terme de consignes.

Django étant par nature un cadriciel Web a besoin d’un serveur Web pour fonctionner. Et comme la plupart des serveurs Web ne communiquent pas nativement avec Python, il y a besoin d’une interface pour permettre cette communication.

Django prend actuellement en charge deux interfaces : WSGI et ASGI.

- WSGI est le standard Python principal pour la communication entre les serveurs Web et les applications, mais il ne gère que le code synchrone.
- ASGI est le nouveau standard orienté sur le code asynchrone qui permet à un site Django de bénéficier des fonctionnalités asynchrones de Python et de Django au fur et à mesure de leur disponibilité.

Il est également nécessaire de considérer la manière de gérer les fichiers statiques de votre application ainsi que le signalement des erreurs.

Pour terminer, avant de passer une application en production, il est recommandé de passer en revue notre liste de contrôle de déploiement pour s’assurer que les configurations appliquées sont convenables.

- Comment déployer avec WSGI
  - Déploiement de Django avec Gunicorn
  - Déploiement de Django avec uWSGI
  - Django avec Apache et `mod_wsgi`
  - Authentification sur la base de données des utilisateurs de Django depuis Apache
  - L’objet `application`
  - Configuration du module de réglages (settings)
  - Application des intergiciels WSGI
- Comment déployer avec ASGI
  - Comment utiliser Django avec Daphne
  - Comment utiliser Django avec Hypercorn
  - Comment utiliser Django avec Uvicorn
  - L’objet `application`
  - Configuration du module de réglages (settings)
  - Application des intergiciels ASGI
- Liste de contrôle de déploiement
  - Lancez `manage.py check --deploy`
  - Réglages critiques
  - Réglages spécifiques à l’environnement
  - HTTPS
  - Optimisations de performance
  - Signalement d’erreurs