Request的中断和ErrorHandler实例解析


Posted in Python onFebruary 12, 2018

概述

在view函数中,如果需要中断request,可以使用abort(500)或者直接raise exception。当然我们还需要返回一个出错信息给前端,所以需要定制一下ErrorHandler。一般只需要两个个handler即可,一个是404错误,一个是500一类的服务器端错误。当然也可以自定义错误。

代码清单

下面是一份示例代码,main是一个蓝本或者app,发生404错误或500错误,会返回一个Json对象给请求段。

from flask import jsonify
from . import main

@main.errorhandler(404)
def error_404(error):
  """这个handler可以catch住所有abort(404)以及找不到对应router的处理请求"""
  response = dict(status=0, message="404 Not Found")
  return jsonify(response), 404

@main.errorhandler(Exception)
def error_500(error):
  """这个handler可以catch住所有的abort(500)和raise exeception."""
  response = dict(status=0, message="500 Error")
  return jsonify(response), 400

class MyError(Exception):
  """自定义错误类"""
  pass

@main.errorhandler(MyError)
def MyErrorHandle(error):
  response = dict(status=0, message="400 Error")
  return jsonify(response), 400

蓝本的错误处理

在蓝本中编写错误处理程序有点不同,如果使用errorhandler修饰器,那么只有蓝本中的错误才会触发。如果想注册全局的错误处理程序,要用app_errorhandler。

例如:

from . import auth


@auth.app_errorhandler(404)
def error_404(error):
  response = dict(status=0, message="404 Not Found")
  return jsonify(response), 404

总结

以上就是本文关于Request的中断和ErrorHandler实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
Dec 31 Python
Python 使用requests模块发送GET和POST请求的实现代码
Sep 21 Python
Python 文件处理注意事项总结
Apr 10 Python
Python异常对代码运行性能的影响实例解析
Feb 08 Python
Python 动态导入对象,importlib.import_module()的使用方法
Aug 28 Python
PYTHON发送邮件YAGMAIL的简单实现解析
Oct 28 Python
解决Pytorch训练过程中loss不下降的问题
Jan 02 Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 Python
python等差数列求和公式前 100 项的和实例
Feb 25 Python
python thrift 实现 单端口多服务的过程
Jun 08 Python
在tensorflow以及keras安装目录查询操作(windows下)
Jun 19 Python
Python2.6版本pip安装步骤解析
Aug 17 Python
Python实现Kmeans聚类算法
Jun 10 #Python
Python request设置HTTPS代理代码解析
Feb 12 #Python
python实现聚类算法原理
Feb 12 #Python
python web.py开发httpserver解决跨域问题实例解析
Feb 12 #Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 #Python
Flask解决跨域的问题示例代码
Feb 12 #Python
tensorflow实现对图片的读取的示例代码
Feb 12 #Python
You might like
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
PHP调用MySQL存储过程并返回值的方法
2014/12/26 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
Dom与浏览器兼容性说明
2010/10/25 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
javascript面向对象之this关键词用法分析
2015/01/13 Javascript
jQuery实现tab选项卡效果的方法
2015/07/08 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
Javascript实现的StopWatch功能示例
2017/06/13 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
vue项目中axios使用详解
2018/02/07 Javascript
在vue中使用echarts图表实例代码详解
2018/10/22 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
python多线程编程中的join函数使用心得
2014/09/02 Python
python自动化测试之如何解析excel文件
2019/06/27 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
解决Python中回文数和质数的问题
2019/11/24 Python
python装饰器代替set get方法实例
2019/12/19 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
Python读写csv文件流程及异常解决
2020/10/20 Python
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
项目经理岗位职责
2013/11/11 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
教务处教学工作总结
2015/08/10 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
2016年情人节广告语
2016/01/28 职场文书