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 相关文章推荐
分享15个最受欢迎的Python开源框架
Jul 13 Python
python字符串替换的2种方法
Nov 30 Python
Python中处理unchecked未捕获异常实例
Jan 17 Python
详细解析Python当中的数据类型和变量
Apr 25 Python
web.py在SAE中的Session问题解决方法(使用mysql存储)
Jun 24 Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
Jan 20 Python
python爬取内容存入Excel实例
Feb 20 Python
python版DDOS攻击脚本
Jun 12 Python
连接pandas以及数组转pandas的方法
Jun 28 Python
Python之pymysql的使用小结
Jul 01 Python
python调用并链接MATLAB脚本详解
Jul 05 Python
python 绘制拟合曲线并加指定点标识的实现
Jul 10 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
星际争霸任务指南——神族
2020/03/04 星际争霸
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
2016/03/14 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
深入浅出讲解ES6的解构
2016/08/03 Javascript
vue项目中导入swiper插件的方法
2018/01/30 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
[00:52]DOTA2国际邀请赛
2020/02/21 DOTA
用Python脚本生成Android SALT扰码的方法
2013/09/18 Python
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
TensorFlow高效读取数据的方法示例
2018/02/06 Python
Django中redis的使用方法(包括安装、配置、启动)
2018/02/21 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
python入门教程之基本算术运算符
2020/11/13 Python
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
董事长岗位职责
2013/11/30 职场文书
写给女朋友的道歉信
2014/01/12 职场文书
小学优秀学生评语
2014/12/29 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
实习感想范文
2015/08/10 职场文书
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android