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实现从web抓取文档的方法
Sep 26 Python
python基于xml parse实现解析cdatasection数据
Sep 30 Python
python多任务之协程的使用详解
Aug 26 Python
python redis 批量设置过期key过程解析
Nov 26 Python
Python函数生成器原理及使用详解
Mar 12 Python
django之导入并执行自定义的函数模块图解
Apr 01 Python
新建文件时Pycharm中自动设置头部模板信息的方法
Apr 17 Python
python 轮询执行某函数的2种方式
May 03 Python
python 3.8.3 安装配置图文教程
May 21 Python
python实现在列表中查找某个元素的下标示例
Nov 16 Python
Python安装Bs4的多种方法
Nov 28 Python
python 基于opencv去除图片阴影
Jan 26 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 adodb介绍
2009/03/19 PHP
PHP 基本语法格式
2009/12/15 PHP
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
基于php常用正则表达式的整理汇总
2013/06/08 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
浅析iis7.5安装配置php环境
2015/05/10 PHP
php生成数字字母的验证码图片
2015/07/14 PHP
Javascript 面向对象 命名空间
2010/05/13 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
2020/03/02 Javascript
Python编写生成验证码的脚本的教程
2015/05/04 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
使用Python爬取弹出窗口信息的实例
2020/03/14 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
通过代码实例了解Python3编程技巧
2020/10/13 Python
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
经典大学生求职信范文
2014/01/06 职场文书
个人对照检查材料
2014/02/12 职场文书
签约仪式主持词
2014/03/19 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
出国留学单位推荐信
2015/03/26 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
Vue+Flask实现图片传输功能
2022/04/01 Vue.js
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技