503子类的金字塔视图

2024-09-30 20:23:24 发布

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

我想提供一些模板html连同一个503状态码,当我击中一个特定的情况下,在我的应用程序。子类化金字塔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。你知道吗


Tags: view模板configjinja2responserequestdefhtml