Инфраструктура динамических настроек Django и лучшие практики - PullRequest
5 голосов
/ 21 января 2010

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

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 21 января 2010

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

from localsettings import *

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

Что-то, что я нашел полезным в последнее время, помещает это в мои settings.py:

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

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

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

0 голосов
/ 21 января 2010

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

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

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

...