【问题标题】:Default configuration in python/djangopython/django中的默认配置
【发布时间】:2011-11-12 18:30:54
【问题描述】:

我正在开发一个可重用的 django 应用程序,我想通过 settings.py 中的 GLOBAL VARIABLES 对其进行配置。

我希望这些是可选的,因此我在我的应用程序中的 conf.py 模块中提供了默认值,其中我有以下内容:

GLOBAL_1 = "Def value for global 1"
GLOBAL_2 = "Def value for global 2"
GLOBAL_3 = "Def value for global 3"

try:
    from settings import GLOBAL_1
except:
    pass

try:
    from settings import GLOBAL_2
except:
    pass

...

因此,如果它们存在,settings.py 中的配置会覆盖默认值。 这种方法不会针对太多变量进行扩展,所以我想知道是否有一种不那么冗长的方法来做到这一点。也许我应该使用 eval()?

非常感谢!

【问题讨论】:

  • 不,你不应该使用eval。如果你不得不问,你不会。
  • 是的,这就是我的想法,因此我的问题。

标签: python django python-import verbosity


【解决方案1】:
GLOBAL_1 = getattr(settings, 'GLOBAL_1', 'Def value for global 1')

【讨论】:

  • 是的,这就是我所做的,但必须先导入设置,就像这样 settings = __import__('settings') 非常感谢。
  • 导入设置:从 django.conf 导入设置
猜你喜欢
  • 2020-11-24
  • 2015-02-26
  • 2016-09-09
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多