2010-07-14 4 views
5

Es ist manchmal vorteilhaft, bestimmte Konstanten zwischen verschiedenen Code-Dateien in einer Django-Anwendung zu teilen.Django - Wie teilt man Konfigurationskonstanten innerhalb einer App?

Beispiele:
- Namen oder Speicherort der Dump-Datei in verschiedenen Modulen verwendet \ Befehle etc
- Debug-Modus auf \ off für die gesamte App
- Site spezifische Konfiguration

Was wäre die elegant \ Pythonic Art, dies zu tun?

Antwort

0

Erstellen Sie ein Konfigurationsmodul.

Configuration.py: (in einem Projekt/app Quellverzeichnis)

MYCONST1 = 1 
MYCONST2 = "rabbit" 

es Import aus anderen Quelldateien:

from Configuration import MYCONST1,MYCONST2 
... 
6

Es gibt bereits eine projektweite settings.py Datei. Dies ist der perfekte Ort, um eigene Einstellungen vorzunehmen.

+0

In der Tat fragte ich speziell nach Anwendungsumfang – Jonathan

+0

@ Jonathan: Suchen Sie eine * app spezifische * Einstellungsdatei? Etwas, das später in einer Projekteinstellungsdatei außer Kraft gesetzt werden kann? –

+0

@ Jonathan, Sie können/sollten App-spezifische Einstellungen in settings.py setzen, schließlich wird ein Projekt auf dem Server nicht selbst ausgeführt –

6

Sie Einstellungen in Ihrem settings.py wie

MY_SETTING = 'value' 

und in jedem Modul zur Verfügung stellen können Sie es wie

from django.conf import settings 
settings.MY_SETTING 
0

Django apps holen können, sind gemeint zu sein (mehr oder weniger) steckbar. Daher sollten Sie sich nicht in den Code einer App hacken, um zu parametrisieren, was Sie wollen (es wäre ziemlich durcheinander, wenn Sie dies tun müssten! Stellen Sie sich vor, Sie möchten eine im Internet heruntergeladene App aktualisieren ... Sie müsste sich nochmal in den code der neuen version hacken?!?).

Aus diesem Grund sollten Sie keine App-Level-Einstellungen auf App-Ebene hinzufügen, sondern sie irgendwo in Ihrem projektweiten settings.py zusammenfügen.

Verwandte Themen