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数据结构树和二叉树简介
Apr 29 Python
Python中的__SLOTS__属性使用示例
Feb 18 Python
浅谈Python中的数据类型
May 05 Python
Python os模块学习笔记
Jun 21 Python
值得收藏,Python 开发中的高级技巧
Nov 23 Python
Python中Numpy ndarray的使用详解
May 24 Python
Python实现直播推流效果
Nov 26 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
Jun 08 Python
如何使用python记录室友的抖音在线时间
Jun 29 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
python 实现aes256加密
Nov 27 Python
python中Pexpect的工作流程实例讲解
Mar 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
PHP管理依赖(dependency)关系工具 Composer 安装与使用
2014/08/18 PHP
利用PHP自动生成印有用户信息的名片
2016/08/01 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
laravel数据库查询结果自动转数组修改实例
2021/02/27 PHP
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
浅谈pc端rem字体设置的问题
2017/08/03 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
2018/09/29 Javascript
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
Html5新增标签有哪些
2017/04/13 HTML / CSS
英国最大的高品质珠宝和手表专家:Goldsmiths
2017/03/11 全球购物
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
Opodo英国旅游网站:预订廉价航班、酒店和汽车租赁
2018/07/14 全球购物
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
个人简历自荐信
2013/12/05 职场文书
社区敬老月活动实施方案
2014/02/17 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
普通话演讲稿
2014/09/03 职场文书
2014迎国庆演讲稿
2014/09/19 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
追讨欠款律师函
2015/05/27 职场文书
飞屋环游记观后感
2015/06/08 职场文书
会议营销主持词
2015/07/03 职场文书
MySQL创建管理LIST分区
2022/04/13 MySQL
利用Apache Common将java对象池化的问题
2022/06/16 Servers
Tomcat安装使用及部署Web项目的3种方法汇总
2022/08/14 Servers