python/django 中的默认配置

发布于 2024-12-15 07:29:26 字数 481 浏览 1 评论 0原文

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

我希望这些是可选的,因此我在 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() ?

多谢!

I'm working on a reusable django app, which I want to make configurable by GLOBAL VARIABLES in settings.py.

I want these to be optional so I've provided default values inside my app in a conf.py module, where I have the following:

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

...

So defaults can get overwritten by configuration in settings.py should they exist.
This method won't scale for too many variables so I was wondering if there's a less verbose way to do this. Maybe I should use eval()?

Thanks a lot!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

帥小哥 2024-12-22 07:29:26
GLOBAL_1 = getattr(settings, 'GLOBAL_1', 'Def value for global 1')
GLOBAL_1 = getattr(settings, 'GLOBAL_1', 'Def value for global 1')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文