我是Python Pyramid
的新手,正在努力改进现有的应用程序。我有一个定义如下的应用程序主要功能:
def web_main(global_config, **settings):
config = Configurator(settings=settings, root_factory=RootFactory)
...
...
config.add_request_method(get_user, "user", reify=True)
config.set_authentication_policy(authn_policy)
config.set_authorization_policy(authz_policy)
...
app = config.make_wsgi_app()
return app
我想在实现中覆盖get_user
请求方法,也想使用自己的身份验证策略。
因此,我正在考虑编写如下功能:
def my_web_main(global_config, **settings):
app = web_main(global_config, **settings)
<Set Overrides here>
return app
在config.ini
文件中,我将调用my_web_main
启动此应用。
我还无法弄清楚如何设置替代值。希望对此有所投入。
配置器是您应该执行替代的地方。因此,答案是修改web_main或定义自己的。金字塔具有通过config.include()
进行覆盖的机制,但是在尝试使用内置的wsgi-app覆盖事物的位置上,金字塔无法上一层使用。您必须在配置级别执行此操作。