我的 django 项目有两个环境——开发和测试。今天我不小心用开发中的设置覆盖了测试中的settings.py。我花了一些时间来更正测试中的设置,如果我有一个好的方法来分别维护两组设置,这是可以避免的。
我想保留两个单独的 settings.py 副本,并在需要时重命名/移动它们。然而,这有点像穴居人的方法。有没有更聪明的方法来处理这个问题?
我的 django 项目有两个环境——开发和测试。今天我不小心用开发中的设置覆盖了测试中的settings.py。我花了一些时间来更正测试中的设置,如果我有一个好的方法来分别维护两组设置,这是可以避免的。
我想保留两个单独的 settings.py 副本,并在需要时重命名/移动它们。然而,这有点像穴居人的方法。有没有更聪明的方法来处理这个问题?
在 settings.py 文件的末尾,添加以下内容:
try:
from settings_dev import *
except ImportError: pass
其中 settings_dev.py 将包含开发设置。在您的生产环境中,不要推送 settings_dev (只需在 .gitingore 或您的源代码版本控制系统中忽略它。)
因此,当 settings_dev.py 存在时,settings.py 将被 settings_dev.py 文件覆盖。
通过设置环境变量的另一种方法:
if os.environ.get('DEVELOPMENT', None):
from settings_dev import *
我更喜欢第一个,它很简单,而且很有效。
按照此处记录的方式拆分您的设置:
https://code.djangoproject.com/wiki/SplitSettings#SimplePackageOrganizationforEnvironments