我正在使用base.py
,local.py
,prod.py
和staging.py
遵循Django设置最佳做法。
我的难题是代码复制是否还可以。让我们来看这个例子。我需要设置一个在固定值的大型词典中使用的URL,以配置程序包。
local.py
CONF_URL = 'hard coded local value'
prod.py
CONF_URL = os.environ['CONF_URL']
staging.py
CONF_URL = 'some other hard coded value'
然后我有类似的代码
PACKAGE_CONF = {
'CONF_URL': CONF_URL,
'foo1': bar,
'foo2': bar,
'foo3': bar,
'foo4': bar,
'foo5': bar,
}
PACKAGE_CONF
放到base.py
中,因为我们是从叶子设置文件导入base
的,而不是相反的。PACKAGE_CONF
,就像使用env文件一样,但这似乎不必要地复杂。CONF_URL
,但这不是良好的本地开发经验。PACKAGE_CONF
,local
和staging,
中复制prod
。我对这些选项都不满意。有写精美设置文件经验的人可以提供更好的解决方案吗?
您可以使用。env文件来设置本地/ dev环境的变量,并确保在staging / prod envs中设置了相同的变量