Pyramid 和 .ini 配置
问题:Pyramid 和 .ini 配置 每个 Pyramid 应用程序都有一个关联的 .ini 文件,其中包含其设置。例如,默认值可能如下所示: [app:main] use = egg:MyProject pyramid.reload_templates = true pyramid.debug_authorization = false pyramid.debug_notfound = fa
·
问题: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
在事件订阅者中。
关于您关于使用另一个文件的问题,我很确定将所有配置放入常规初始化文件中是一种很好的做法,就像您一样使用点分符号。
更多推荐
已为社区贡献126475条内容
所有评论(0)