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

Vesta ·
更新时间:2024-11-10
· 743 次阅读

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))

您可能感兴趣的文章:Python的Tornado框架的异步任务与AsyncHTTPClientPython Web服务器Tornado使用小结Python(Tornado)模拟登录小米抢手机tornado框架blog模块分析与使用python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)使用基于Python的Tornado框架的HTTP客户端的教程简单介绍Python的Tornado框架中的协程异步实现原理Tornado Web服务器多进程启动的2个方法Python的Tornado框架实现图片上传及图片大小修改功能



方法 tornado 404错误 404

需要 登录 后方可回复, 如果你还没有账号请 注册新账号