Python 503子类的金字塔视图

Python 503子类的金字塔视图,python,pyramid,Python,Pyramid,当我在我的应用程序中遇到特定情况时,我想提供一些模板化html以及503状态代码。子类化pyramid 503异常可以很方便地表示这一点: from pyramid.httpexceptions import HTTPServiceUnavailable class PleaseWait(HTTPServiceUnavailable): pass def business_logic(): if not_ready(): raise PleaseWait()

当我在我的应用程序中遇到特定情况时,我想提供一些模板化html以及503状态代码。子类化pyramid 503异常可以很方便地表示这一点:

from pyramid.httpexceptions import HTTPServiceUnavailable
class PleaseWait(HTTPServiceUnavailable):
    pass

def business_logic():
    if not_ready():
        raise PleaseWait()
我搞不懂的是如何将模板连接到
PleaseWait
。这几乎可以工作,但代码为200:

config.add_view(
    renderer='templates/please_wait.jinja2',
    context='my_app.PleaseWait',
)
这完全可行,但看起来很混乱:

@view_config(context=PleaseWait, renderer='templates/please_wait.jinja2')
def please_wait(exc, request):
    request.response.status = 503
    return {}


这也是可行的,但似乎很奇怪:
request.response=exc

而不是
raise
你能在哪里构建完整的HTTP响应,包括响应体中的渲染模板?@mikkoohtama我会收到一个错误,比如“没有这样的渲染器工厂:jinja2”,尽管我确信我在配置中正确导入了jinja2工厂。我可以很好地呈现其他视图的jinja2模板。如果有错误,您可以发布错误的完整回溯吗?还有相关的配置Python代码。您自己设置response.status代码的最后一个代码是Pyramid开发人员使用的方式<您的
请稍候()
视图中的code>exc是一个完整的响应,因此可以设置为
request.Response
,或者您甚至可以
返回exc
以获得相同的效果。