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人人网登录应用实例
Sep 26 Python
python命令行参数解析OptionParser类用法实例
Oct 09 Python
零基础写python爬虫之抓取糗事百科代码分享
Nov 06 Python
Python实现从脚本里运行scrapy的方法
Apr 07 Python
Python加pyGame实现的简单拼图游戏实例
May 15 Python
python fabric实现远程部署
Jan 05 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
Nov 11 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
Feb 26 Python
Django使用redis缓存服务器的实现代码示例
Apr 28 Python
django数据关系一对多、多对多模型、自关联的建立
Jul 24 Python
详解Scrapy Redis入门实战
Nov 18 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
Dec 14 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
PHP4实际应用经验篇(3)
2006/10/09 PHP
给初学PHP的5个入手程序
2006/11/23 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
详解yii2实现分库分表的方案与思路
2017/02/03 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
PHP实现随机发放扑克牌
2020/04/21 PHP
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
2011/05/24 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
JavaScript的RequireJS库入门指南
2015/07/01 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
python增加矩阵维度的实例讲解
2018/04/04 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
python字典的常用方法总结
2019/07/31 Python
Python sys模块常用方法解析
2020/02/20 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
PHP如何调用MYSQL存储过程
2014/05/30 面试题
婚礼证婚人演讲稿
2014/09/13 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
药店采购员岗位职责
2014/09/30 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
个人年终总结开头
2015/03/06 职场文书
护士自我推荐信范文
2015/03/24 职场文书
单位车辆管理制度
2015/08/05 职场文书
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS