避免在Django设置文件中重复代码

问题描述 投票:0回答:1

我正在使用base.pylocal.pyprod.pystaging.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_CONFlocalstaging,中复制prod

我对这些选项都不满意。有写精美设置文件经验的人可以提供更好的解决方案吗?

python django settings django-settings 12factor
1个回答
0
投票

您可以使用。env文件来设置本地/ dev环境的变量,并确保在staging / prod envs中设置了相同的变量

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.