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中copy和deepcopy中的区别
Oct 23 Python
python机器学习之神经网络(二)
Dec 20 Python
Python机器学习之SVM支持向量机
Dec 27 Python
Python简单计算给定某一年的某一天是星期几示例
Jun 27 Python
在Python中通过getattr获取对象引用的方法
Jan 21 Python
Python3最长回文子串算法示例
Mar 04 Python
django 通过url实现简单的权限控制的例子
Aug 16 Python
python获取网络图片方法及整理过程详解
Dec 20 Python
Selenium 滚动页面至元素可见的方法
Mar 18 Python
Python爬虫基于lxml解决数据编码乱码问题
Jul 31 Python
Pytest如何使用skip跳过执行测试
Aug 13 Python
appium+python自动化配置(adk、jdk、node.js)
Nov 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 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
php生成RSS订阅的方法
2015/02/13 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
JavaScript Tab菜单实现过程解析
2020/05/13 Javascript
Python中的类与对象之描述符详解
2015/03/27 Python
python中字典dict常用操作方法实例总结
2015/04/04 Python
Python 多线程抓取图片效率对比
2016/02/27 Python
python用post访问restful服务接口的方法
2018/12/07 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
python常用函数与用法示例
2019/07/02 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
pandas按行按列遍历Dataframe的几种方式
2019/10/23 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
C++面试题:关于链表和指针
2013/06/05 面试题
物流管理专业职业生涯规划书
2014/01/06 职场文书
通信研究生自荐信
2014/02/01 职场文书
田径运动会开幕式及主持词
2014/03/28 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书
quickjs 封装 JavaScript 沙箱详情
2021/11/02 Javascript