Django, переключающий MultiDB и установленные приложения в settings.py

#python #django #list #tuples

#python #django #Список #кортежи

Вопрос:

У меня есть набор приложений и несколько баз данных, которые необходимы только во время начальной настройки. Я хочу переключать это по мере необходимости, поэтому я настраиваю постоянный IMPORT_MODE в settings.py .

Чтобы это сработало, я изменил INSTALLED_APPS с кортежа на список. Таким образом, я могу добавлять список приложений, которые мне нужны, при выполнении настройки по мере необходимости. С этим, похоже, не было никаких проблем, но я предполагаю, что это открывает возможность изменения списка INSTALLED_APPS во время выполнения, поскольку это больше не кортеж.

Это обоснованная проблема или я должен просто написать скрипт для закомментирования приложений, которые мне не нужны, в кортеже INSTALLED_APPS?

Каким бы маленьким ни было, необходимость проверять, находимся ли мы в INSTALL_MODE или вообще не влияет на производительность? Или Python делает это по существу устраняющим эту проверку при создании pyc? (Не уверен, имеет ли смысл этот последний вопрос для людей или нет.)

Спасибо!

Ответ №1:

Это не должно иметь значения, нет. Возможно, вы захотите подумать о том, чтобы сделать что-то подобное, хотя это идиома Django, которую я видел (и использую). Определите свои альтернативные настройки в другом модуле (скажем import_mode.py ) и импортируйте их, переопределяя настройки по умолчанию, но только тогда, когда модуль, содержащий ваши альтернативные настройки, доступен для импорта.

 try:
    from import_mode import *
except ImportError:
    pass