gpt4 book ai didi

error-handling - Pyramid Cherrpy空白错误页面

转载 作者:行者123 更新时间:2023-12-03 08:28:38 25 4
gpt4 key购买 nike

我有一个小的Pyramid应用程序,默认情况下在设置它时使用了女服务员Web服务器。但是我现在尝试切换到CherryPy,因为它在sse上效果更好。

但是对于未捕获的异常,我在女服务员中得到了一个包含内容的500错误页面,但是使用cherrypy,这些页面只是空白(状态正确为500)。

我要做的唯一一件事就是更改线路:

use = egg:waitress#main


use = egg:pyramid#cherrypy

在CherryPy的 documentation中,我可以看到可以为意外错误设置自定义错误消息。尝试了一下,但我什么都没看到,但从未调用过该函数-我什至试图在CherryPy的内部错误响应中添加一个断点,但也未命中。

我怀疑还有其他问题,因为我认为CherryPy应该默认显示500页的“东西”?

最佳答案

我试图使用Pyramid附带的starter支架重现该问题,并对附带的现有views.py进行了以下修改:

from pyramid.view import view_config

from pyramid.httpexceptions import HTTPInternalServerError


@view_config(route_name='home', renderer='templates/mytemplate.pt')
def my_view(request):
raise HTTPInternalServerError()

在CherryPy和女服务员上,这都返回一个页面,上面带有 HTTPInternalServerError(),包括文本。

将加薪更改为:
raise ValueError('test')

但是,如果启用了 pyramid_debugtoolbar,并且仅在页面上显示一些内容,并且允许访问URL的用户看到 pyramid_debugtoolbar(这由 hostspyramid_debugtoolbar设置控制)。

CherryPy没有自己的文本。不幸的是,我没有使用启用自定义错误消息的 _cp_config方法的方法,因为没有方法可以在使用由pserve使用的Pyramid CherrypyWSGIServer入口点使用的 cherrypy的HTTP服务器上进行设置。

您可以做的是在Pyramid中设置默认的异常 View ,如下所示:
@view_config(context=Exception)
def exception_view(request):
request.response.status = 500
request.response.text = u'Something went very wrong. Sorry!'
return request.response

当然,您可以根据需要自定义此异常 View 。但是,如果出现此异常 View ,您将受到CherryPy的帮助,CherryPy将为您提供空白页面。

关于error-handling - Pyramid Cherrpy空白错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33297815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com