异常处理

HTTP 异常主动抛出

  • abort 方法

    • 抛出一个给定状态代码的 HTTPException 或者 指定响应,例如想要用一个页面未找到异常来终止请求,你可以调用 abort(404)。
  • 参数:
    • code – HTTP的错误状态码
# abort(404)
abort(500)

抛出状态码的话,只能抛出 HTTP 协议的错误状态码

示例代码:

from flask import Flask, render_template, abortapp = Flask(__name__)@app.route('/users/<int:user_id>')
def index(user_id):if user_id < 5:abort(444)return render_template('index.html')app.run()

运行效果:

【这儿abort写成404时,页面会报404的错误,但是服务器不会显示错误信息】 【这儿要写确定的状态码】

捕获错误

  • errorhandler 装饰器

    • 注册一个错误处理程序,当程序抛出指定错误状态码的时候,就会调用该装饰器所装饰的方法
  • 参数:
    • code_or_exception – HTTP的错误状态码或指定异常
  • 例如统一处理状态码为500的错误给用户友好的提示:
@app.errorhandler(500)
def internal_server_error(e):return '服务器搬家了'

示例代码:

from flask import Flask, render_template, abortapp = Flask(__name__)@app.route('/users/<int:user_id>')
def index(user_id):if user_id < 5:abort(500)return render_template('index.html')@app.errorhandler(500)
def internal_server_error(e):print(e)return '服务器搬家了'app.run()

运行效果:

  • 捕获指定异常
@app.errorhandler(ZeroDivisionError)
def zero_division_error(e):return '除数不能为0'

示例代码:

from flask import Flask, render_template, abortapp = Flask(__name__)@app.route('/test')
def index():9 / 0return render_template('index.html')@app.errorhandler(ZeroDivisionError)
def zero_division_error(e):print(e)return '除数不能为0'app.run()

运行效果:

Flask之异常处理相关推荐

  1. python异常处理类源码_Flask源码异常处理问题

    Flask version: 0.3 我事先在views.py里面定义了如下的异常处理方法: @app.errorhandler(404) def page_not_found(): return & ...

  2. 如何使用Python Flask编写Web服务

    我们的许多客户正在使用我们的Webhook功能来构建有用的服务,但不幸的是,其他客户却没有. 我们经常听到他们的团队中没有人足够熟练地编写一种服务,该服务可以提取Webhook负载并处理数据. 这使得 ...

  3. Python Web异常处理

    文章目录 1.异常处理流程 1.异常注册 2.异常触发 3.异常处理 2.flask-jwt集成,认证相关异常处理 参考博客 要做一个python web系统,做简单的信息管理和案例展示,还要考虑后续 ...

  4. Web框架——Flask系列之abort函数与自定义异常处理(十三)

    一.abort函数 使用abort函数可以立即终止视图函数的执行,并可以返回给前端特定的信息 传递状态码信息,必须是标准的http状态码 abort(403) 传递响应体信息 resp = Respo ...

  5. Flask 消息提示与异常处理

    1. 消息提示 flask 中提供了消息闪现机制,方便我们消息提示,所使用的模块是 flash 模块.在我们使用 flash 时,我们需要调用 app.secret_key 字段,该字段会对消息进行加 ...

  6. web框架总结(django、flask)

    1.MVC解读 M:Model,模型,和数据库进行交互 V:View,视图,负责产生Html页面 C:Controller,控制器,接收请求,进行处理,与M和V进行交互,返回应答. 1.用户点击注 2 ...

  7. python flask高级编程之restful_('Python Flask高级编程之RESTFul API前后端分离精讲',),全套视频教程学习资料通过百度云网盘下载...

    资源详情 r n t某课网好评度100%的Python Flask高级编程之RESTFul API前后端分离精讲 r n t t t第1章 随便聊聊 r n t t t聊聊Flask与Django,聊 ...

  8. python微型web框架flask介绍

    Flask是一个基于python的,微型web框架.之所以被称为微型是因为其核心非常简单,同时具有很强的扩展能力.它几乎不给使用者做任何技术决定. 安装flask时应该注意其必须的几个支持包比如Jin ...

  9. Flask的上下文管理机制

    前引 在了解flask上下文管理机制之前,先来一波必知必会的知识点. 面向对象双下方法 首先,先来聊一聊面向对象中的一些特殊的双下划线方法,比如__call__.__getattr__系列.__get ...

最新文章

  1. docker-3-常用命令(上)
  2. python【蓝桥杯vip练习题库】ADV-272 change(思维)
  3. Visual Studio2017 安装教程(走过的坑绝不再走)
  4. hdfs yarn hbase pid文件被删除解决办法:修改hadoop-daemon.sh yarn-daemon.sh hbase-daemon.sh中PID_DIR存储路径
  5. 2021牛客多校7 - xay loves monotonicity(线段树区间合并)
  6. 常用哈希函数的比较及其实现
  7. git ssh创建分支_将git项目导入GitHub的方法(附创建分支)
  8. ubuntu16.04下FSA-Net环境安装和训练
  9. 即使到了 2020 年,编程语言之争仍未休!
  10. 今日头条ocpm计费规则_今日头条广告投放推广新产品选OCPM还是CPA好?是新的计费方式吗?...
  11. mongo按季度统计_2020年第一季度电网工程设备材料信息价(完整版)
  12. eclipse birt报表开发入门
  13. 中源幼儿园收费管理系统 v5.2.8 是什么
  14. 基于JSP+Servlet+Tomcat8.5+WebSocket实现的网页聊天室
  15. Java 使用itextpdf添加图片印章到PDF
  16. 寒武纪MLU270安装运行Pytorch yolov3实录
  17. MySQL8.0安装与基于二进制日志文件位置的主从复制
  18. 2021-01-09:Microsoft Word2019 提示:很抱歉此功能看似已中断,并需要修复。请使用Windows控制面板中的“程序和功能”选项修复Microsoft Office
  19. 嵌入式系统 操作系统 uC/OS uClinux
  20. oracle索引创建及删除

热门文章

  1. 脚本征集大赛开启啦!100%有奖!
  2. 实战|手把手教你用Python爬取存储数据,还能自动在Excel中可视化
  3. 又一年5.20,用Python助力程序员脱单大攻略(视频版)
  4. 生成假人脸、假新闻...AI虚拟世界正形成
  5. SpringMVC:注解@ControllerAdvice的工作原理
  6. 记录一次MySQL两千万数据的大表优化解决过程,提供三种解决方案 1
  7. 技术经理:求求你,别再乱改数据库连接池的大小了!
  8. 知乎热问:成为算法工程师的路上,掌握什么技术会感觉自我提升突飞猛进?
  9. 数据分析(EDA)学习总结!
  10. 从理论到实践,Top选手带你进入数据竞赛的大门