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转码问题的解决方法
Oct 07 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
Oct 18 Python
实现python版本的按任意键继续/退出
Sep 26 Python
Python 中开发pattern的string模板(template) 实例详解
Apr 01 Python
利用Celery实现Django博客PV统计功能详解
May 08 Python
python安装requests库的实例代码
Jun 25 Python
Python使用微信接入图灵机器人过程解析
Nov 04 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
Matplotlib配色之Colormap详解
Jan 05 Python
python 破解加密zip文件的密码
Apr 22 Python
使用numpy nonzero 找出非0元素
May 14 Python
Pytorch 实现变量类型转换
May 17 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
推荐十款免费 WordPress 插件
2015/03/24 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
PHP入门教程之操作符与控制结构流程详解
2016/09/09 PHP
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
Jquery 的outerHeight方法使用介绍
2013/09/11 Javascript
js全屏显示显示代码的三种方法
2013/11/11 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
jQuery图片切换动画效果
2017/02/28 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
JS 验证码功能的三种实现方式
2018/11/26 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
利用python画出AUC曲线的实例
2020/02/28 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
华润集团网上药店:健一网
2016/09/19 全球购物
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
Android面试题附答案
2014/12/08 面试题
护理自我鉴定范文
2013/10/06 职场文书
超市采购员岗位职责
2015/04/07 职场文书
无罪辩护词范文
2015/05/21 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS