Django动态设置基础架构和最佳实践

Lak*_*sad 5 django settings django-settings

Django设置包括一系列python变量,这些变量用于从数据库设置到已安装应用程序的大量内容.甚至许多可重用的应用程序都需要进行一些设置.

有几十个站点,很难管理所有项目的设置.

幸运的是,设置只是一个包含变量的python模块,因此您可以使用任何魔法来填充所需的变量.

您遵循了哪些做法或者您认为可以将各种相关设置分成不同的文件?

显然,现有的enterprisey做法是,开发人员创建一个战争和OPS部门拍打它的青鱼,并采取所有的数据库(并且这样)OPS的东西(根据照顾雅各布的电子邮件).

settings.py您可以创建哪些动态来帮助现有的企业实践?

Dom*_*ger 1

我经常看到设置文件包含以下内容:

from localsettings import *
Run Code Online (Sandbox Code Playgroud)

以及定义localsettings.py数据库连接和值之类的内容。对于每个部署环境(开发/登台/生产等)来说是(或可能是)不同的,并且不与其他一切一起存在于源代码控制中。DEBUGlocalsettings.py

我最近发现有用的东西是将其放入我的settings.py

try:
    from localsettings import *
except ImportError:
    from default_localsettings import *
Run Code Online (Sandbox Code Playgroud)

default_localsettings.py我定义了一堆默认值(DEBUG = True,在与等相同的目录中使用sqlite数据库default_localsettings.py)。

一旦您完成设置,这可能就没用了,但我发现它很有用,只需能够将我的项目从源代码控制中检查出来并使用 使其立即工作runserver,而无需进行任何设置。