2010-07-14 5 views
5

Il est parfois utile de partager certaines constantes entre différents fichiers de code dans une application django.Django - Comment partager les constantes de configuration dans une application?

Exemples:
- Nom ou emplacement du fichier de vidage utilisé dans différents modules \ commandes etc
- mode débogage sur \ off pour l'application entière
- configuration spécifique du site

Quelle serait l'élégant façon pythonique de le faire?

Répondre

0

Créez un module de configuration.

Configuration.py: (dans votre projet/app répertoire source)

MYCONST1 = 1 
MYCONST2 = "rabbit" 

importer d'autres fichiers source:

from Configuration import MYCONST1,MYCONST2 
... 
6

Il y a déjà un fichier de projet à l'échelle settings.py. C'est l'endroit idéal pour mettre vos propres arrangements personnalisés.

+0

En effet, c'est pourquoi j'ai demandé spécifiquement au sujet de la portée de l'application – Jonathan

+0

@Jonathan: Cherchez-vous un fichier de paramètres * spécifique à l'application *? Quelque chose qui peut être plus tard remplacé dans un fichier de paramètres de projet? –

+0

@Jonathan, vous pouvez/devriez mettre des paramètres spécifiques à l'application dans settings.py, finalement un projet est exécuté sur le serveur et non sur l'application elle-même –

6

vous pouvez fournir des paramètres dans votre settings.py comme

MY_SETTING = 'value' 

et en tout module, vous pouvez chercher comme

from django.conf import settings 
settings.MY_SETTING 
0

applications Django sont censés être (plus ou moins) connectable. Par conséquent, vous n'êtes pas censé pirater le code d'une application afin de paramétrer ce que vous voulez (ce serait un gros gâchis si vous deviez le faire! Imaginez que vous voulez mettre à niveau une application que vous avez téléchargée sur Internet ... vous devrait re-hack dans le code de la nouvelle version?!?). Pour cette raison, vous ne devez pas ajouter de paramètres au niveau de l'application au niveau de l'application, mais plutôt les regrouper quelque part dans l'ensemble de votre projet. settings.py

Questions connexes