С Django - Разница между импортом django.conf.settings и настройками импорта , я понимаю принятый способ импорта файла настроек:
from django.conf import settings
Я также прочитал Хорошая или плохая практика в Python: импорт в середине файла . Один из ответов на этот вопрос приведет вас к http://mail.python.org/pipermail/python-list/2001-July/699176.html,, где пункты № 2 и № 4 относятся к моему вопросу.
Допустим, у меня есть огромный файл settings.py, и во всем моем коде Django мне нужно использовать только «низкую» константу, такую как MEDIA_ROOT, в одном редко вызываемом методе. Таким образом, импортировать все настройки кажется невероятно расточительным.py:
from django.conf import settings
...
def foo():
my_media_root = settings.MEDIA_ROOT
когда я могу просто импортировать нужную константу:
from settings import MEDIA_ROOT
...
def foo():
my_media_root = MEDIA_ROOT
и, следовательно, избегайте импорта огромного settings.py, тем более что он может даже никогда не использоваться, если my_media_root используется только в одном из многих методов в этом файле. Конечно, это плохая практика, но «версия хорошей практики» этого не работает:
from django.conf.settings import MEDIA_ROOT
...
def foo():
my_media_root = MEDIA_ROOT
, так как по замыслу вызывает ожидаемое исключение ImportError: No module named settings
.
Итак, мой вопрос: как правильно импортировать только одну константу из большого файла settings.py? Заранее спасибо.