Django - Как поделиться константами конфигурации в приложении? - PullRequest
5 голосов
/ 14 июля 2010

Иногда полезно разделять определенные константы между различными файлами кода в приложении django.

Примеры:
- Имя или местоположение файла дампа, используемого в различных модулях \ командах и т. Д.
- Режим отладки вкл \ выкл для всего приложения
- Конкретная конфигурация сайта

Каким будет элегантный \ питонический способ сделать это?

Ответы [ 4 ]

6 голосов
/ 14 июля 2010

Уже есть файл settings.py для всего проекта.Это идеальное место для размещения ваших собственных расчетов.

6 голосов
/ 14 июля 2010

вы можете указать настройки в вашем файле settings.py как

MY_SETTING = 'value'

, а в любом модуле вы можете получить его как

from django.conf import settings
settings.MY_SETTING
0 голосов
/ 14 июля 2010

Приложения Django должны быть (более или менее) подключаемыми . Таким образом, вы не должны взламывать код приложения, чтобы параметризовать то, что вы хотите (это было бы довольно беспорядочно, если бы вам пришлось это делать! Представьте, что вы хотите обновить приложение, которое вы скачали в Интернете ... вы придется взломать код новой версии?!?).

По этой причине вам не следует добавлять настройки уровня приложения на уровне приложения, а скорее собирать их где-то в вашем проекте settings.py.

0 голосов
/ 14 июля 2010

Создание модуля конфигурации.

Configuration.py: (в исходном каталоге вашего проекта / приложения)

MYCONST1 = 1
MYCONST2 = "rabbit"

Импорт его из других исходных файлов:

from Configuration import MYCONST1,MYCONST2
...
...