如何让Pyramid invoke\u subrequest通过view\u config上下文路由进行错误处理

2024-06-10 11:09:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我们使用^{}从Python代码运行视图。你知道吗

我们希望subrequests响应遍历为错误定义的视图(context routing)。你知道吗

例如,如果我们定义了几个错误视图,例如:

@view_config(context=requests.exceptions.HTTPError)
def response_error(context, request):
    if context.response.status_code == 412:
        return httpexceptions.HTTPPreconditionFailed()
    # [...]

当对每种context使用subrequests时,如何执行它而不必为每种类型添加一个except close?你知道吗

理想情况下,我们希望得到这样的结果(例如,想象的view_lookup()函数):

try:
    subresp = request.invoke_subrequest(subrequest)
except Exception as e:
    subresp = view_lookup(e)(subrequest)

invoke_subrequest()中使用use_tweens=True似乎也不会执行错误视图。你知道吗

有没有办法显式调用view lookup,这样我们就可以获得subresponse,就好像它会经历view_config错误处理程序一样?你知道吗


Tags: view视图config定义responserequest错误context
1条回答
网友
1楼 · 发布于 2024-06-10 11:09:51

你要找的可能是:pyramid.view.render_view_to_response

from pyramid.view import render_view_to_response

try:
    subresp = request.invoke_subrequest(subrequest)
except Exception as e:
    subresp = render_view_to_response(e, subrequest)

相关问题 更多 >