我在我的金字塔应用程序中定义了一个自定义的404视图:
@view_config(context=HTTPNotFound, renderer='404.pt')
def not_found(self, request):
return {}
它工作得很好,除了随内容一起发送的HTTP状态码是200OK,这无论如何都不是OK。我也有同样的问题,403禁忌。如何让Pyramid发送正确的状态代码?
发布于 2012-03-22 10:37:10
exception视图是一个单独的视图,它为您提供了一个执行任意操作的位置。就像任何使用渲染器的视图一样,您可以通过request.response
影响响应对象以修改其行为。然后,渲染器填充正文。
@view_config(context=HTTPNotFound, renderer='404.pt')
def not_found(self, request):
request.response.status = 404
return {}
发布于 2013-06-21 13:27:58
实际上,在金字塔1.3中有一个新的装饰器@notfound_view_config。
@notfound_view_config(renderer = '404_error.jinja2')
def notfound(request):
request.response.status = 404
发布于 2012-03-22 09:30:18
执行此操作的最佳方法是覆盖默认的Not Found View:
即使在这种情况下,您也需要返回一个状态为404的正确响应对象:
def notfound(request):
return Response('Not Found, dude', status='404 Not Found')
以上面链接的页面为例
https://stackoverflow.com/questions/9815224
复制相似问题