Инфраструктура динамических настроек Django и лучшие практики

StackOverflow https://stackoverflow.com/questions/2109352

Вопрос

Настройки Django включают в себя список переменных Python, которые используются для множества вещей, от настроек базы данных до установленных приложений.Даже многие из многоразовых приложений делают некоторые необходимые настройки.

При десятках сайтов сложно управлять настройками всех проектов.

К счастью, настройки — это всего лишь модуль Python с переменными, поэтому вы можете делать любую магию, чтобы заполнить нужные переменные.

Какие методы вы использовали или, по вашему мнению, можно использовать для разделения различных связанных настроек в разные файлы?

Судя по всему, существующие предпринимательская практика заключается в том, что разработчик создает войну, а операционный отдел передает ее синему фишу и заботится обо всех операциях с базой данных (и тому подобное) (согласно Электронная почта Джейкоба).

Какая динамика settings.py Можете ли вы создать что-то, что поможет существующей корпоративной практике?

Это было полезно?

Решение

Часто я видел файлы настроек с чем-то вроде:

from localsettings import *

И в localsettings.py такие вещи, как подключения к базе данных и DEBUG значения определены. localsettings.py является (или может быть) различным для каждой среды развертывания (разработки/промежуточного/производства и т. д.) и не находится в системе контроля версий вместе со всем остальным.

В последнее время мне помогло то, что я поместил это в свой settings.py:

try:
    from localsettings import *
except ImportError:
    from default_localsettings import *

в default_localsettings.py Я определяю кучу значений по умолчанию (DEBUG = True, используйте базу данных sqlite в том же каталоге, что и default_localsettings.py и т. д).

Это может быть бесполезно после того, как вы все настроили, но я нашел полезным просто иметь возможность проверить мой проект вне системы контроля версий и сразу же заставить его работать, используя runserver, без необходимости ничего настраивать.

Другие советы

Следуйте этому примеру переопределения настроек для обработки сред разработки, промежуточной и производственной среды.

http://djangodose.com/articles/2009/09/handling-development-staging-and-production-enviro/

(архивная версия на Wayback Machine)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top