2017-12-07 22 views
1

Ich habe mein Django-Projekt über Apache2 auf einem Server bereitgestellt.Django + WSGI: Wann wird wsgi.py aufgerufen?

Das Problem, das ich habe, ist, dass ich zwei Einstellungsmodule habe: , die meine lokalen Entwicklungseinstellungen sind und settingsprod.py, die meine produktiven Einstellungen sind.

fand ich die folgende Zeile in der WSGI.py:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj.settings") 

Ist das Modul nur bei Verwendung von WSGI genannt? Und wenn ja, ist dies ein guter Ort, um meine Produktionseinstellungen so zu nutzen?

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj.settingsprod") 

Für die lokale Entwicklung verwende ich den Entwicklungs-Server wie folgt:

python3 manage.py runserver 

Enthält diese Vorgaben dann noch settings.py?

Antwort

2

Ja, Ihre Einrichtung funktioniert wie erwartet. Wenn Sie jedoch zusätzliche Tools wie Sellerie verwenden, müssen Sie möglicherweise auch die settingsprod für diese Setups angeben.

Die Art, wie ich mit einer solchen Situation umgehe, ist genau umgekehrt: Ich benutze für meine Produktionseinstellungen und habe zusätzlich settings_development.py, die ich für alle Entwicklungsaufgaben verwende. Auf diese Weise muss ich mich nicht erinnern, die Produktionseinstellungen in allen produktionsrelevanten Dateien zu setzen, sondern einfach die Einstellungen für die Entwicklung für die Entwicklung nutzen etwa so:

python3 manage.py runserver --settings=proj.settings_development 

Wenn Sie oft manage.py Befehle verwenden und speichern möchten einige Zeit tippen, können Sie eine Kopie Ihres manage.py z. B. machen

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj.settings_development") 

und dann rufen Sie verwalten Funktionen mit: als manage_dev.py und die Leitungseinstellungen Modul wie so ändern

python3 manage_dev.py runserver