问题:Pyramid 和 .ini 配置

每个 Pyramid 应用程序都有一个关联的 .ini 文件,其中包含其设置。例如,默认值可能如下所示:

[app:main]
use = egg:MyProject
pyramid.reload_templates = true
pyramid.debug_authorization = false
pyramid.debug_notfound = false
pyramid.debug_routematch = false
...

我想知道是否可以在其中添加您自己的配置值,并在运行时读取它们(主要来自可调用视图)。例如,我可能想要

[app:main]
blog.title = "Custom blog name"
blog.comments_enabled = true
...

还是有一个单独的 .ini 文件并在启动时对其进行解析更好?

解答

你当然可以。

在您的入口点函数中(大多数情况下,main(global_config, **settings)__init__.py中),您的配置可以在settings变量中访问。

例如,在您的.ini中:

[app:main]
blog.title = "Custom blog name"
blog.comments_enabled = true

在您的__init__.py中:

def main(global_config, **settings):
    config = Configurator(settings=settings)
    blog_title = settings['blog.title']
    # you can also access you settings via config
    comments_enabled = config.registry.settings['blog.comments_enabled']
    return config.make_wsgi_app()

根据最新的 Pyramid 文档,您可以通过request.registry.settings访问视图功能中的设置。此外,据我所知,它将通过event.request.registry.settings在事件订阅者中。

关于您关于使用另一个文件的问题,我很确定将所有配置放入常规初始化文件中是一种很好的做法,就像您一样使用点分符号。

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐