Dies ist ein älterer Beitrag, aber ich denke, wenn ich diesen nützlichen hinzufüge library, wird es die Dinge vereinfachen.
Verwenden Sie die Django-Konfiguration
Schnellstart
pip install django-configurations
Unterklassifizieren Sie dann die enthaltenen Konfigurationen.Konfigurationsklasse in den Einstellungen Ihres Projekts.py oder einem anderen Modul, das Sie zum Speichern der Einstellungskonstanten verwenden, z.
# mysite/settings.py
from configurations import Configuration
class Dev(Configuration):
DEBUG = True
Setzen Sie die DJANGO_CONFIGURATIONUmgebungsvariable auf den Namen der Klasse, die Sie gerade erstellt haben, z. B ~/.bashrc.:
export DJANGO_CONFIGURATION=Dev
und die DJANGO_SETTINGS_MODULEUmgebungsvariable zum Modulimportpfad wie gewohnt, z. B. in bash:
export DJANGO_SETTINGS_MODULE=mysite.settings
Alternativ können Sie die --configurationOption angeben, wenn Sie Django-Verwaltungsbefehle gemäß der Standardbefehlszeilenoption von Django verwenden --settings, z.
python manage.py runserver --settings=mysite.settings --configuration=Dev
So aktivieren Sie Django Ihre Konfiguration zu verwenden , haben Sie jetzt Ihre ändern manage.py oder wsgi.py django-Konfigurationen zu verwenden Versionen der entsprechenden Starterfunktionen, zB ein typisches Skript manage.py mit django-Konfigurationen würde wie folgt aussehen:
#!/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)
Beachten Sie, dass wir in Zeile 10 nicht das allgemeine Tool verwenden, django.core.management.execute_from_command_linesondern stattdessen configurations.management.execute_from_command_line.
Gleiches gilt für Ihre Datei wsgi.py , z.
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()
Hier verwenden wir nicht die Standardfunktion django.core.wsgi.get_wsgi_application, sondern configurations.wsgi.get_wsgi_application.
Das ist es! Sie können Ihr Projekt jetzt mit manage.py und Ihrem bevorzugten WSGI-fähigen Server verwenden.