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

时间:2023-11-27 11:03:36 

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

标签:tornado,404错误
0
投稿

猜你喜欢

  • python基于SMTP发送QQ邮件

    2023-04-07 21:11:51
  • Flask模板继承深入理解与应用

    2021-01-24 12:31:40
  • django+mysql的使用示例

    2022-10-24 20:34:15
  • SQL SERVER查询所有数据库名,表名,和字段名的语句

    2012-01-05 19:25:26
  • PHP getDocNamespaces()函数讲解

    2023-06-13 22:19:06
  • 利用Django框架中select_related和prefetch_related函数对数据库查询优化

    2024-01-20 23:24:19
  • 详解python单例模式与metaclass

    2021-03-20 23:43:56
  • CI框架中数据库操作函数$this->db->where()相关用法总结

    2024-06-05 09:45:16
  • mysql 选择插入数据(包含不存在列)具体实现

    2024-01-21 15:15:56
  • 设计哲学与跨界

    2009-08-18 12:25:00
  • 匹配 IP 地址与域名的正则表达式

    2023-06-17 05:55:48
  • 基于python实现微信模板消息

    2022-03-08 01:14:55
  • python 编码规范整理

    2023-05-20 10:14:44
  • HTML5 移动页面自适应手机屏幕宽度详解

    2022-08-14 23:14:43
  • 下一站:HandlerSocket!

    2011-04-11 09:02:00
  • 详解 Go 语言中 Map 类型和 Slice 类型的传递

    2024-05-29 22:07:11
  • 基于python编写的微博应用

    2021-06-06 01:26:38
  • mysql8.0.11 winx64安装配置方法图文教程(win10)

    2024-01-23 07:58:58
  • 详解Python对某地区二手房房价数据分析

    2022-04-07 04:47:30
  • 使用python opencv对目录下图片进行去重的方法

    2023-07-06 20:04:13
  • asp之家 网络编程 m.aspxhome.com