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操作CouchDB的方法
Oct 08 Python
通过python+selenium3实现浏览器刷简书文章阅读量
Dec 26 Python
python实现学生管理系统
Jan 11 Python
pandas 两列时间相减换算为秒的方法
Apr 20 Python
Python中文件的读取和写入操作
Apr 27 Python
python实现下载pop3邮件保存到本地
Jun 19 Python
widows下安装pycurl并利用pycurl请求https地址的方法
Oct 15 Python
python cumsum函数的具体使用
Jul 29 Python
Python OpenCV实现鼠标画框效果
Aug 19 Python
python多线程实现代码(模拟银行服务操作流程)
Jan 13 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
Apr 02 Python
Django如何重置migration的几种情景
Feb 24 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
TMDPHP 模板引擎使用教程
2012/03/13 PHP
php中autoload的用法总结
2013/11/08 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
javascript 变量作用域 代码分析
2009/06/26 Javascript
jquery text()要注意啦
2009/10/30 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
Vue数据驱动模拟实现4
2017/01/12 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
vue3实现v-model原理详解
2019/10/09 Javascript
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
Python读取图片属性信息的实现方法
2016/09/11 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
深入解析HTML5中的Blob对象的使用
2015/09/08 HTML / CSS
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
物业管理工作方案
2014/05/10 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
教师工作能力自我评价
2015/03/04 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS
Java完整实现记事本代码
2022/06/16 Java/Android