当我在我的应用中遇到特定情况时,我想提供一些模板化的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
。