DJANGO_SETTINGS_MODULE innerhalb von Python setzen

Django, Flask, Bottle, WSGI, CGI…
Antworten
Nras
User
Beiträge: 24
Registriert: Dienstag 25. März 2014, 10:38

Hallo,

zur Zeit arbeite ich auf verschiedenen Datenbanken und habe daher verschiedene settings_*.py, um die Datenbanken entsprechend anzusprechen. Alle verfügbaren Datenbanken in einer settings_*.py ist leider keine Option, da feste Namen vergeben sind.
Ich löse das Problem so, in dem ich einfach vor dem Ausführen der Pythonfunktion noch die richtige Settingsdatei setze.

Code: Alles auswählen

export DJANGO_SETTINGS_MODULE=pfad-zu.tollensettings
python mykram.py
Das ist mit enstprechendem alias in der .bashrc auch halbwegs in Ordnung, noch besser fände ich es aber, wenn ich das DJANGO_SETTINGS_MODULE innerhalb meiner Python-Funktion setzen würde. Leider konnte ich dazu nichts im netz finden, außer auf https://docs.djangoproject.com/en/dev/topics/settings/ den Part

Code: Alles auswählen

import os

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
Das bewirkt aber nichts, ich habe dann trotzdem noch das settings Modul geladen, was in der Shell vorgegeben ist.

Frage: kann ich das DJANGO_SETTINGS_MODULE innerhalb von Pythonprogrammen setzen? Falls ja: wie?

Viele Grüße,
Nras
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Nras: An welcher Stelle versuchst Du denn `DJANGO_SETTINGS_MODULE` zu setzen? Es muß vor dem Importieren von irgendwelchen Django-Modulen passieren.
Nras
User
Beiträge: 24
Registriert: Dienstag 25. März 2014, 10:38

Hallo Sirius,

das stimmt. Wenn in meiner Shell als DJANGO_SETTINGS_MODULE beispielsweise 'pfad.settings1' gesetzt ist und ich sowas ausführe wie hier, dann wird settings2 benutzt.

Code: Alles auswählen

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'pfad.settings2'
Wenn ich dann aber Sachen von der DB herunterlade (also django Module importiere, auch nur in Unterfunktionen), dann kann ich danach die Settings nicht mehr mit ''os.environ'' ändern. Gibt es da auch einen Weg?

Viele Grüße,
Nras.

Edit: Typos
Zuletzt geändert von Nras am Freitag 20. Juni 2014, 13:16, insgesamt 1-mal geändert.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Nein, man kann Settings nur am Anfang setzen.
Nras
User
Beiträge: 24
Registriert: Dienstag 25. März 2014, 10:38

Alles klar,

danke.
Antworten