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使用mailbox打印电子邮件的方法
Apr 30 Python
python实现汉诺塔方法汇总
Jul 25 Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
Python中模块pymysql查询结果后如何获取字段列表
Jun 05 Python
详解python之协程gevent模块
Jun 14 Python
python基于http下载视频或音频
Jun 20 Python
Python 使用Numpy对矩阵进行转置的方法
Jan 28 Python
如何用Python破解wifi密码过程详解
Jul 12 Python
简单了解Python3里的一些新特性
Jul 13 Python
Python 类属性与实例属性,类对象与实例对象用法分析
Sep 20 Python
Python基础之列表常见操作经典实例详解
Feb 26 Python
python eventlet绿化和patch原理
Nov 21 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
剧场版动画《PSYCHO-PASS 3 FIRST INSPECTOR》3月27日日本上映!
2020/03/06 日漫
php array_intersect()函数使用代码
2009/01/14 PHP
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
ThinkPHP多表联合查询的常用方法
2020/03/24 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
详解vue-cli脚手架中webpack配置方法
2018/08/22 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
2020/01/13 Python
python实现人机五子棋
2020/03/25 Python
python3 logging日志封装实例
2020/04/08 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
毕业自我评价范文
2013/11/17 职场文书
《巨人的花园》教学反思
2014/02/12 职场文书
干部作风建设工作总结
2014/10/29 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
java实现对Hadoop的操作
2021/07/01 Java/Android
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS