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标准库之随机数 (math包、random包)介绍
Nov 25 Python
简单介绍Python的Tornado框架中的协程异步实现原理
Apr 23 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 Python
Python递归实现汉诺塔算法示例
Mar 19 Python
Python实现购物车程序
Apr 16 Python
Python爬虫之pandas基本安装与使用方法示例
Aug 08 Python
Python反射和内置方法重写操作详解
Aug 27 Python
python使用__slots__让你的代码更加节省内存
Sep 05 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
Jan 08 Python
pandas DataFrame 交集并集补集的实现
Jun 24 Python
python3+opencv生成不规则黑白mask实例
Feb 19 Python
基于Python绘制个人足迹地图
Jun 01 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
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
常用PHP封装分页工具类
2017/01/14 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
js作用域及作用域链概念理解及使用
2013/04/15 Javascript
JavaScript中的单引号和双引号报错的解决方法
2014/09/01 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
2015/01/22 Javascript
JavaScript判断是否为数组的3种方法及效率比较
2015/04/01 Javascript
基于insertBefore制作简单的循环插空效果
2015/09/21 Javascript
angularjs创建弹出框实现拖动效果
2020/08/25 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
Vue.js实现一个todo-list的上移下移删除功能
2017/06/26 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
Python实现对比不同字体中的同一字符的显示效果
2015/04/23 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
pandas分区间,算频率的实例
2019/07/04 Python
python实现图片二值化及灰度处理方式
2019/12/07 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
美国最大的珠宝首饰网上商城:Jewelry.com
2016/07/22 全球购物
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
.NET面试问题集
2015/12/08 面试题
《油菜花开了》教学反思
2014/02/22 职场文书
简历中个人自我评价分享
2014/03/15 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2014-2015学年工作总结
2014/11/27 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL