您无法直接在设置中指定任何内容。我使用的做法是为不同的环境添加额外的设置文件,其中只包含我想要更改的覆盖设置,例如数据库设置或缓存设置。例如,我的项目根应用程序将在开发环境中包含以下文件(注意前导下划线):
...
settings.py
settings_dev.py
_settings_test.py
_settings_prod.py
...
然后在 settings.py 中,我会在开头添加以下代码行:
try:
from settings_prod import *
except ImportError:
try:
from settings_test import *
except ImportError:
from settings_dev import *
由于我在开发环境中,它只会导入我的 settings_dev 文件,因为其他文件有一个前导下划线。
当我部署到生产或测试环境时,我会重命名相关文件。对于生产:_settings_prod.py
-> settings_prod.py
,对于测试:_settings_test.py
-> settings_test.py
。settings_dev.py
基本上可以保持原样,因为只有在其他两个失败时才会导入。最后一步,您可以简单地通过结构或其他工具进行自动化部署。织物的一个例子就像run('mv _settings_prod.py settings_prod.py')
重命名一样。