[Django] Setup DJANGO_SETTINGS_MODULE und PYTHONPATH

Django, Flask, Bottle, WSGI, CGI…
Antworten
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

Liebes Forum
Verstehe ich das richtig, Django kann, was eigentlich Sinn macht, nur ein settings.py Module schnallen? Dies deshalb, weil man in seiner Systemumgebung die DJANGO_SETTINGS_MODULE Variable setzen muss, und die kann ja nicht auf zwei Ziele zeigen.
Kann man das so ausdrücken:
$DJANGO_SETTINGS_MODULE beschreibt, wo Django settings.py findet. In settings.py wird definiert wo die verschiedenen Apps sind (solange der Ort angegeben wird, kann eine App also irgendwo, auf dem PYTHONPATH sein?) Und der PYTHONPATH muss den Ort enthalten, an dem sich settings.py befindet. Wenn all das gegeben ist, sollte der Development Server eigentlich starten und die Apps laufen. Korrekt?
Anders ausgedrückt: Wie kann ich mehrere Django-Projekte mit verschiedenen settings.py haben?
[url=http://www.proandkon.com]proandkon.com[/url]
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

mzh hat geschrieben:$DJANGO_SETTINGS_MODULE beschreibt, wo Django settings.py findet. In settings.py wird definiert wo die verschiedenen Apps sind (solange der Ort angegeben wird, kann eine App also irgendwo, auf dem PYTHONPATH sein?) Und der PYTHONPATH muss den Ort enthalten, an dem sich settings.py befindet. Wenn all das gegeben ist, sollte der Development Server eigentlich starten und die Apps laufen. Korrekt?
Anders ausgedrückt: Wie kann ich mehrere Django-Projekte mit verschiedenen settings.py haben?
Das hängt davon ab, in welchem Kontext Django überhaupt läuft. Ich arbeite üblicherweise mit WSGI und setze dann einfach in der passenden WSGI-Datei einen Wert für os.environ['DJANGO_SETTINGS_MODULE'].
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

@me: Im Moment nur über den eingebauten Development Server. Ist es das was du meinst?
[url=http://www.proandkon.com]proandkon.com[/url]
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ja und Nein ;)

Man kann DJANGO_SETTINGS_MODULE natürlich als echte Environment Variable setzten, oder halt über os.environ['DJANGO_SETTINGS_MODULE'] in manage.py oder index.py...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

jens hat geschrieben:Ja und Nein ;)

Man kann DJANGO_SETTINGS_MODULE natürlich als echte Environment Variable setzten, oder halt über os.environ['DJANGO_SETTINGS_MODULE'] in manage.py oder index.py...

Ok, aber damit ich das richtig verstehe. Für jedes Projekt muss die Variable einen anderen Wert haben, dh. für jedes Projekt muss sie anders gesetzt werden. Ich verstehe es so, dass Projekte sich dadurch unterscheiden, dass in settings.py halt verschiedene Apps geladen werden.
[url=http://www.proandkon.com]proandkon.com[/url]
Benutzeravatar
daemonTutorials
User
Beiträge: 171
Registriert: Sonntag 6. Februar 2011, 12:06
Kontaktdaten:

Um nur mal kurz zu sagen: Wenn man ein Django-Seite anlegt, wird das alles automatisch gesetzt. Wenn das nachher auf einem Server läuft, dann weiß man oft wie man das einstellt, da die Hoster meist eine Anleitung dafür haben. Siehe ADIT Systems oder alwaysdata.com.

Es sei nur mal gesagt. Nicht das für andere noch Fragen offen stehen.

Maik
LG Maik
Antworten