C'est un article plus ancien, mais je pense que si j'ajoute cela utile, library
cela simplifiera les choses.
Utilisez django-configuration
Démarrage rapide
pip install django-configurations
Ensuite, sous-classez la classe configurations.Configuration incluse dans le fichier settings.py de votre projet ou dans tout autre module que vous utilisez pour stocker les constantes de paramètres, par exemple:
# mysite/settings.py
from configurations import Configuration
class Dev(Configuration):
DEBUG = True
Définissez la DJANGO_CONFIGURATION
variable d'environnement sur le nom de la classe que vous venez de créer, par exemple dans ~/.bashrc
:
export DJANGO_CONFIGURATION=Dev
et la DJANGO_SETTINGS_MODULE
variable d'environnement vers le chemin d'importation du module comme d'habitude, par exemple dans bash:
export DJANGO_SETTINGS_MODULE=mysite.settings
Vous pouvez également fournir l' --configuration
option lors de l'utilisation des commandes de gestion Django le long des lignes de l' --settings
option de ligne de commande par défaut de Django, par exemple:
python manage.py runserver --settings=mysite.settings --configuration=Dev
Pour permettre à Django d'utiliser votre configuration, vous devez maintenant modifier votre script manage.py ou wsgi.py pour utiliser les versions de django-configurations des fonctions de démarrage appropriées, par exemple un manage.py typique utilisant django-configurations ressemblerait à ceci:
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
os.environ.setdefault('DJANGO_CONFIGURATION', 'Dev')
from configurations.management import execute_from_command_line
execute_from_command_line(sys.argv)
Remarquez à la ligne 10 que nous n'utilisons pas l'outil commun django.core.management.execute_from_command_line
mais à la place configurations.management.execute_from_command_line
.
La même chose s'applique à votre fichier wsgi.py , par exemple:
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
os.environ.setdefault('DJANGO_CONFIGURATION', 'Dev')
from configurations.wsgi import get_wsgi_application
application = get_wsgi_application()
Ici, nous n'utilisons pas la django.core.wsgi.get_wsgi_application
fonction par défaut mais à la place configurations.wsgi.get_wsgi_application
.
C'est tout! Vous pouvez maintenant utiliser votre projet avec manage.py et votre serveur compatible WSGI préféré.