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


Posted in Python onFebruary 26, 2014

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 相关文章推荐
Python性能优化的20条建议
Oct 25 Python
Python 爬虫模拟登陆知乎
Sep 23 Python
Django卸载之后重新安装的方法
Mar 15 Python
Python网络编程 Python套接字编程
Sep 13 Python
python+opencv识别图片中的圆形
Mar 25 Python
django主动抛出403异常的方法详解
Jan 04 Python
pyqt5实现登录界面的模板
May 30 Python
Python3使用TCP编写一个简易的文件下载器功能
May 08 Python
在Python中获取操作系统的进程信息
Aug 27 Python
Windows10下 python3.7 安装 facenet的教程
Sep 10 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
Mar 16 Python
基于python连接oracle导并出数据文件
Apr 28 Python
python为tornado添加recaptcha验证码功能
Feb 26 #Python
python实现博客文章爬虫示例
Feb 26 #Python
python处理中文编码和判断编码示例
Feb 26 #Python
python实现网页链接提取的方法分享
Feb 25 #Python
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
Feb 24 #Python
python实现socket客户端和服务端简单示例
Feb 24 #Python
python抓取网页内容示例分享
Feb 24 #Python
You might like
我的论坛源代码(七)
2006/10/09 PHP
php中hashtable实现示例分享
2014/02/13 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
读jQuery之二(两种扩展)
2011/06/11 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
2013/08/23 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
2014/03/20 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
2016/11/18 Javascript
js设置文字颜色的方法示例
2016/12/30 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
python类定义的讲解
2013/11/01 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
解决Spyder中图片显示太小的问题
2018/04/27 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
python实现Zabbix-API监控
2018/09/17 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
Python Web版语音合成实例详解
2019/07/16 Python
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
事业单位请假制度
2014/01/13 职场文书
党员2014两会学习心得体会
2014/03/17 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
go 实现简易端口扫描的示例
2021/05/22 Golang
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server