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的加密模块md5、sha、crypt使用实例
Sep 28 Python
Python中py文件引用另一个py文件变量的方法
Apr 29 Python
Python for循环中的陷阱详解
Jul 13 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
Nov 14 Python
python socket 聊天室实例代码详解
Nov 14 Python
Python中BeautifuSoup库的用法使用详解
Nov 15 Python
Python3如何对urllib和urllib2进行重构
Nov 25 Python
python os.path.isfile()因参数问题判断错误的解决
Nov 29 Python
python爬虫模拟浏览器访问-User-Agent过程解析
Dec 28 Python
Python如何实现自带HTTP文件传输服务
Jul 08 Python
关于探究python中sys.argv时遇到的问题详解
Feb 23 Python
理解深度学习之深度学习简介
Apr 14 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 过滤危险html代码
2009/06/29 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
2015/11/05 PHP
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
js实现文字在按钮上滚动的方法
2015/08/20 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
详解vue axios中文文档
2017/09/12 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
js canvas实现星空连线背景特效
2019/11/01 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
[02:19]2014DOTA2国际邀请赛 专访820少年们一起去追梦吧
2014/07/14 DOTA
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
Python实现冒泡排序的简单应用示例
2017/12/11 Python
Python WSGI的深入理解
2018/08/01 Python
django框架自定义用户表操作示例
2018/08/07 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
python绘制地震散点图
2019/06/18 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
Python如何获取文件路径/目录
2020/09/22 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
three.js模拟实现太阳系行星体系功能
2019/09/03 HTML / CSS
毕业生自我鉴定范文
2013/11/08 职场文书
公务员培训自我鉴定
2014/02/01 职场文书
农村葬礼主持词
2014/03/31 职场文书
员工合理化建议书
2014/05/19 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
小学教师暑期培训心得体会
2016/01/09 职场文书