您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

tornado捕获和处理404错误的方法

2024/4/17 19:57:23发布6次查看
tornado 文档中提到但是这样只能捕获到handlers中列出的路径请求中的错误。
如果只定义了(r/hello, hellohandler) 一条规则,那么只能捕获到 /hello/other,这样的未定义路径请求,而像/he、/helloworld、/he/other这样的会直接显示tornado默认的404错误页面,而不会显示自定义的错误页面。
解决方法很简单只需要在路由规则的最后加一条(r.*, basehandler),用于捕获未被其他规则捕获的所有请求,然后覆写get方法,并在方法中调用自定义的write_error方法。 例:
代码如下:
class basehandler(tornado.web.requesthandler):
    def get(self):
        self.write_error(404)
    def write_error(self, status_code, **kwargs):
        if status_code == 404:
            self.render('public/404.html')
        elif status_code == 500:
            self.render('public/500.html')
        else:
            self.write('error:' + str(status_code))
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录