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中的Descriptor描述符类
Jun 14 Python
pygame实现弹力球及其变速效果
Jul 03 Python
python字典操作实例详解
Nov 16 Python
详细分析python3的reduce函数
Dec 05 Python
使用python将大量数据导出到Excel中的小技巧分享
Jun 14 Python
Django框架多表查询实例分析
Jul 04 Python
python爱心表白 每天都是浪漫七夕!
Aug 18 Python
python反编译学习之字节码详解
May 19 Python
用python做游戏的细节详解
Jun 25 Python
Python函数__new__及__init__作用及区别解析
Aug 31 Python
Django通过设置CORS解决跨域问题
Nov 26 Python
利用Python+OpenCV三步去除水印
May 28 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下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
PHP针对JSON操作实例分析
2015/01/12 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
PHP获取远程http或ftp文件的md5值的方法
2019/04/15 PHP
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
JS判断两个时间大小的示例代码
2014/01/28 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
CSS图片响应式 垂直水平居中
2015/08/14 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
基于jquery实现多级菜单效果
2017/07/25 jQuery
H5+C3+JS实现双人对战五子棋游戏(UI篇)
2020/05/28 Javascript
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
python时间整形转标准格式的示例分享
2014/02/14 Python
Python异常处理操作实例详解
2018/05/10 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
Python短信轰炸的代码
2020/03/25 Python
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
大学生年度自我鉴定
2013/10/31 职场文书
李敖北大演讲稿
2014/05/24 职场文书
社区文艺活动方案
2014/08/19 职场文书
银行奉献演讲稿
2014/09/16 职场文书
11.9消防日宣传标语
2014/10/08 职场文书
机关单位工作失职检讨书
2014/11/20 职场文书
如何做好工作总结!
2019/04/10 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书