2010-07-14 9 views
5

A veces es beneficioso compartir ciertas constantes entre varios archivos de código en una aplicación django.Django: cómo compartir las constantes de configuración dentro de una aplicación?

Ejemplos:
- nombre o la ubicación del archivo de volcado utilizado en varios módulos \ comandos etc
- El modo de depuración en \ fuera para toda la aplicación
- configuración específica del sitio

¿Cuál sería el elegante \ pythonic manera de hacer esto?

Respuesta

0

Crear un módulo de configuración.

Configuration.py: (en su directorio fuente del proyecto/aplicación)

MYCONST1 = 1 
MYCONST2 = "rabbit" 

importación de otros archivos de origen:

from Configuration import MYCONST1,MYCONST2 
... 
6

Ya hay un archivo settings.py en todo el proyecto. Este es el lugar perfecto para poner sus propios ajustes personalizados.

+0

De hecho, es por eso que pregunté específicamente sobre el alcance de la aplicación – Jonathan

+0

@Jonathan: ¿Estás buscando un * archivo de configuración * específico de la aplicación? Algo que puede ser anulado más tarde en un archivo de configuración del proyecto? –

+0

@Jonathan, puede/debe poner la configuración específica de la aplicación en settings.py, en última instancia, un proyecto se ejecuta en el servidor y no en la aplicación –

6

puede proporcionar una configuración en su settings.py como

MY_SETTING = 'value' 

y en cualquier módulo que se puede recuperar como

aplicaciones
from django.conf import settings 
settings.MY_SETTING 
0

Django pretenden ser (más o menos) enchufable. Por lo tanto, no se supone que debe hackear el código de una aplicación para parametrizar lo que desea (sería un desastre si tuviera que hacer esto). Imagine que desea actualizar una aplicación que descargó en Internet ... usted tendría que volver a hackear el código de la nueva versión?!?).

Por este motivo, no debe agregar configuraciones de nivel de aplicación a nivel de aplicación, sino unirlas en algún lugar de su proyecto settings.py.

Cuestiones relacionadas