Иногда выгодно совместно использовать определенные константы между различными файлами кода в django приложении.
Примеры:
- Имя или местоположение файла дампа, используемого в различном modules\commands и т.д.
- Режим отладки on\off для целого приложения
- Сайт определенная конфигурация
Каков был бы elegant\pythonic способ сделать это?
вы можете указать настройки в своем settings.py, например
MY_SETTING = 'value'
, и в любом модуле вы можете получить их, например,
from django.conf import settings
settings.MY_SETTING
Уже существует файл settings.py
для всего проекта. Это идеальное место для размещения ваших собственных настроек.
Создайте модуль конфигурации.
Configuration.py:
MYCONST1 = 1
MYCONST2 = "rabbit"
Импортируйте его из других исходных файлов:
from Configuration import MYCONST1,MYCONST2
...
Приложения Django должны быть (более или менее) подключаемыми . Следовательно, вы не должны взламывать код приложения, чтобы параметризовать то, что вы хотите (это было бы довольно беспорядочно, если бы вам пришлось это сделать! Представьте, что вы хотите обновить приложение, которое вы скачали из Интернета ... вы пришлось бы заново взламывать код новой версии?!?).
По этой причине вам не следует добавлять настройки уровня приложения на уровне приложения, а лучше объединить их где-нибудь в вашем проекте settings.py
.