首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >金字塔:自定义404页面返回为“200OK”

金字塔:自定义404页面返回为“200OK”
EN

Stack Overflow用户
提问于 2012-03-22 09:25:08
回答 3查看 5.2K关注 0票数 18

我在我的金字塔应用程序中定义了一个自定义的404视图:

代码语言:javascript
复制
@view_config(context=HTTPNotFound, renderer='404.pt')
def not_found(self, request):
     return {}

它工作得很好,除了随内容一起发送的HTTP状态码是200OK,这无论如何都不是OK。我也有同样的问题,403禁忌。如何让Pyramid发送正确的状态代码?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-22 10:37:10

exception视图是一个单独的视图,它为您提供了一个执行任意操作的位置。就像任何使用渲染器的视图一样,您可以通过request.response影响响应对象以修改其行为。然后,渲染器填充正文。

代码语言:javascript
复制
@view_config(context=HTTPNotFound, renderer='404.pt')
def not_found(self, request):
    request.response.status = 404
    return {}
票数 20
EN

Stack Overflow用户

发布于 2013-06-21 13:27:58

实际上,在金字塔1.3中有一个新的装饰器@notfound_view_config。

代码语言:javascript
复制
@notfound_view_config(renderer = '404_error.jinja2')
def notfound(request):
    request.response.status = 404
票数 8
EN

Stack Overflow用户

发布于 2012-03-22 09:30:18

执行此操作的最佳方法是覆盖默认的Not Found View:

http://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/narr/hooks.html#changing-the-not-found-view

即使在这种情况下,您也需要返回一个状态为404的正确响应对象:

代码语言:javascript
复制
def notfound(request):
    return Response('Not Found, dude', status='404 Not Found')

以上面链接的页面为例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9815224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档