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 Requests安装与简单运用
Apr 07 Python
Python合并字典键值并去除重复元素的实例
Dec 18 Python
python django事务transaction源码分析详解
Mar 17 Python
Python中eval带来的潜在风险代码分析
Dec 11 Python
对numpy中shape的深入理解
Jun 15 Python
使用Python更换外网IP的方法
Jul 09 Python
python对离散变量的one-hot编码方法
Jul 11 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
Nov 29 Python
python异常处理和日志处理方式
Dec 24 Python
jupyter notebook参数化运行python方式
Apr 10 Python
python 自定义异常和主动抛出异常(raise)的操作
Dec 11 Python
python实现对doc、txt、xls等文档的读写操作
Apr 02 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
数字转英文
2006/12/06 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
推荐十款免费 WordPress 插件
2015/03/24 PHP
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
2017/08/10 Javascript
利用QT写一个极简单的图形化Python闹钟程序
2015/04/07 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
python中类的属性和方法介绍
2018/11/27 Python
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
python多线程并发实例及其优化
2019/06/27 Python
pytorch数据预处理错误的解决
2020/02/20 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
在Keras中实现保存和加载权重及模型结构
2020/06/15 Python
Python绘图之柱形图绘制详解
2020/07/28 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
将一个文本文件的内容按倒序打印出来
2015/01/05 面试题
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
幼儿教师自我鉴定
2013/11/02 职场文书
师德师风承诺书
2014/05/23 职场文书
企业金融服务方案
2014/06/03 职场文书
委托书怎么写
2014/07/31 职场文书
授权委托书格式
2014/07/31 职场文书
个人先进事迹材料
2014/12/29 职场文书
收入证明申请书
2015/06/12 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书
2019入党申请书格式
2019/06/25 职场文书
《学会生存》读后感3篇
2019/12/09 职场文书
Python提取PDF指定内容并生成新文件
2021/06/09 Python
python turtle绘制多边形和跳跃和改变速度特效
2022/03/16 Python