Flask框架使用异常捕获问题
目录
- Flask框架使用异常捕获
- abort 方法
- errorhandler 装饰器
- 开启调试模式
- Flask基础-->错误捕获(异常捕获)
- 错误捕获(异常捕获)
- 总结
Flask框架使用异常捕获
abort 方法
抛出一个给定状态代码的 HTTPException,例如想要用一个页面未找到异常来终止请求,你可以调用 abort(404)。
参数:code – HTTP的错误状态码
abort(404)
只能抛出HTTP协议的状态码
errorhandler 装饰器
注册一个错误处理程序,当程序抛出指定错误状态码的时候,就会调用该装饰器所装饰的方法
参数:code_or_exception – HTTP的错误状态码或指定异常
例如统一处理状态码为500的错误给用户友好的提示:
@app.errorhandler(404) def internal_server_error(e): return '网页找不到了', 404
开启调试模式
开发时启动调试模式, 可以在浏览器中和编辑器控制台显示错误信息
if __name__ == '__main__': app.run(debug=True)
Flask基础-->错误捕获(异常捕获)
错误捕获(异常捕获)
from flask import Flask from flask import abort app = Flask(__name__) @app.route('/demo1') def demo1(): # print(403) # abort(404) # 主动抛出404错误,下面的代码不在执行 print("404") return 'demo1' #===================================== # 当我们访问http://127.0.0.1:5000/demo3时,由于找不到页面而抛出404错误,那么demo2就会捕获这个错误 #===================================== @app.errorhandler(404) # 捕获404错误 def demo2(error): # error接收errorhandler(404)返回的错误内容 return "哎呀,页面不见了......" if __name__ == '__main__': app.run(debug = True)
什么是异常捕获?
异常捕获:捕获非正常的页面资源请求
为什么要做异常捕获处理?
因为当项目上线之后就取消了调试模式,当用户请求我们的服务器资源时,如果请求资源不存在,
用户此时就得不到有效的错误反馈,用户就不知道为什么会出错,导致用户体验度非常差。那么我们捕获到了这些常见的错误,然后进行简化处理,反馈给用户,能提高项目的美感和用户体验度。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
python flask自定义404错误页面方式
目录 python flask自定义404错误页面 这里有些地方需要注意下 Python Flask捕获异常,捕获404错误,errorhandler(),自定义异常处理函数 总结 python flask自定义404错误页面 在用浏览器访问url的时候,如果url不正确会报404错误,默认的404错误太枯燥了,这里我讲述一下如何将404错误页面修改为好看的404页面 1,首先,创建一个我们希望当出现404错误时展示的html页面,这里我随便写一个页面内容不多定义了,意思在这就行 <!DOCTY
-
flask中响应错误的处理及errorhandler的应用方式
目录 flask响应错误处理及errorhandler应用 flask学习笔记:错误处理 1. 做好准备工作 2. Flask中的错误处理 3. 调试模式 4. 自定义错误页面 5. 通过邮件发送错误 6. 记录到文件 7. 修复用户名重名漏洞 总结 flask响应错误处理及errorhandler应用 @app.errorhandler(404) def page_not_found(error): return render_template('404.html'),404 则当互出现请求
-
Request的中断和ErrorHandler实例解析
概述 在view函数中,如果需要中断request,可以使用abort(500)或者直接raise exception.当然我们还需要返回一个出错信息给前端,所以需要定制一下ErrorHandler.一般只需要两个个handler即可,一个是404错误,一个是500一类的服务器端错误.当然也可以自定义错误. 代码清单 下面是一份示例代码,main是一个蓝本或者app,发生404错误或500错误,会返回一个Json对象给请求段. from flask import jsonify from . i
-
Flask与SMTP协议邮件扩展问题
目录 Flask与SMTP协议邮件扩展 设置邮箱授权码 Flask框架(flask中的邮件发送Flask-Mail(邮件扩展)) 总结 Flask与SMTP协议邮件扩展 在开发过程中,很多应用程序都需要通过邮件提醒用户,Flask的扩展包Flask-Mail通过包装了Python内置的smtplib包,可以用在Flask程序中发送邮件. Flask-Mail连接到简单邮件协议(Simple Mail Transfer Protocol,SMTP)服务器,并把邮件交给服务器发送. 设置邮箱授权码
-
flask框架视图函数用法示例
本文实例讲述了flask框架视图函数用法.分享给大家供大家参考,具体如下: flask框架 视图函数当中 各种实用情况简单配置 1 建立连接 2 路由参数 3 返回网络状态码 4 自定义错误页面 5 重定向 6 正则url限制 和 url 优化 7 设置和获取cookie #coding:utf8 # 导入flask from flask import Flask,abort,redirect,make_response,request from werkzeug.routing import
-
Flask框架路由和视图用法实例分析
本文实例讲述了Flask框架路由和视图用法.分享给大家供大家参考,具体如下: 创建一个简单flask框架程序 #1.导入Flask类 from flask import Flask #2.创建Flask对象接收一个参数__name__,它会指向程序所在的包 app = Flask(__name__) #3.装饰器的作用是将路由映射到视图函数index @app.route('/') def index(): return 'Hello World' #4.Flask应用程序实例的run方法,启动
-
flask框架单元测试原理与用法实例分析
本文实例讲述了flask框架单元测试原理与用法.分享给大家供大家参考,具体如下: 为什么要测试? Web程序开发过程一般包括以下几个阶段:[需求分析,设计阶段,实现阶段,测试阶段].其中测试阶段通过人工或自动来运行测试某个系统的功能.目的是检验其是否满足需求,并得出特定的结果,以达到弄清楚预期结果和实际结果之间的差别的最终目的. 测试的分类: 测试从软件开发过程可以分为:单元测试.集成测试.系统测试等.在众多的测试中,与程序开发人员最密切的就是单元测试,因为单元测试是由开发人员进行的,而其他测试
-
Flask框架中request、请求钩子、上下文用法分析
本文实例讲述了Flask框架中request.请求钩子.上下文用法.分享给大家供大家参考,具体如下: request 就是flask中代表当前请求的request对象: 常用的属性如下: 属性 说明 类型 data 记录请求的数据,并转换为字符串 * form 记录请求中的表单数据 MultiDict args 记录请求中的查询参数 MultiDict cookies 记录请求中的cookie信息 Dict headers 记录请求中的报文头 EnvironHeaders method 记录请求
-
flask框架路由常用定义方式总结
本文实例讲述了flask框架路由常用定义方式.分享给大家供大家参考,具体如下: 路由的各种定义方式 请求方式限定 使用 methods 参数指定可接受的请求方式,可以是多种 @app.route('/',methods=['GET']) def hello(): return '<h1>hello world</h1>' 路由查找方式 同一路由指向两个不同的函数,在匹配过程中,至上而下依次匹配 @app.route('/') def hello(): return '<h1&
-
Flask框架钩子函数功能与用法分析
本文实例讲述了Flask框架钩子函数功能与用法.分享给大家供大家参考,具体如下: 在Flask中钩子函数是使用特定的装饰器的函数.为什么叫做钩子函数呢,是因为钩子函数可以在正常执行的代码中,插入一段自己想要执行的代码,那么这种函数就叫做钩子函数. before_first_request:Flask项目第一次部署后会执行的钩子函数. before_request:请求已经到达了Flask,但是还没有进入到具体的视图函数之前调用.一般这个就是在函数之前,我们可以把一些后面需要用到的数据先处理好,方
-
Flask框架信号用法实例分析
本文实例讲述了Flask框架信号用法.分享给大家供大家参考,具体如下: 项目功能复杂,代码量越大,就越需要做业务解耦.否则在其之上做开发和维护是很痛苦的,尤其是对于团队的新人.Flask从0.6开始,通过Blinker提供了信号支持.信号就是在框架核心功能或者一些Flask扩展发生工作时所发送的通知,用于帮助你解耦应用. Blinker的使用 安装 pip install blinker Blinker的信号与接收方式 from blinker import signal s = signal(
-
Flask框架配置与调试操作示例
本文实例讲述了Flask框架配置与调试操作.分享给大家供大家参考,具体如下: 配置管理 复杂的项目需要配置各种环境.如果设置项很少,可以直接硬编码进来,比如下面的方式: app = Flask(__name__) app.config['DEBUG'] = True app.config是flask.config.Config类的实例,继承自Python内置数据结构dict,所以可以使用update方法: app.config.update( DEBUG = True, ... ) app.co
-
Flask框架 CSRF 保护实现方法详解
本文实例讲述了Flask框架 CSRF 保护实现方法.分享给大家供大家参考,具体如下: Flask CSRF 保护 为什么需要 CSRF? 具体操作步骤 实现 后端书写 在表单添加保护 自定义错误响应和关闭保护 ajax提交数据 故障排除 为什么需要 CSRF? Flask-WTF 表单保护你免受 CSRF 威胁,你不需要有任何担心.尽管如此,如果你有不包含表单的视图,那么它们仍需要保护. 例如,由 AJAX 发送的 POST 请求,然而它背后并没有表单.在 Flask-WTF 0.9.0 以前
-
Flask框架使用DBUtils模块连接数据库操作示例
本文实例讲述了Flask框架使用DBUtils模块连接数据库的操作方法.分享给大家供大家参考,具体如下: Flask连接数据库 数据库连接池: Django使用:django ORM(pymysql/MySqldb) Flask/其他使用: -原生SQL -pymysql(支持python2/3) -MySqldb(支持python2) -SQLAchemy(ORM) 原生SQL 需要解决的问题: -不能为每个用户创建一个连接 -创建一定数
随机推荐
- jsp文件下载功能实现代码
- asp.net cookie清除的代码
- SQL Server 2008+ Reporting Services (SSRS)使用USER登录问题
- JQuery开发的数独游戏代码
- Angular 4依赖注入学习教程之InjectToken的使用(八)
- 通过AppCmd.exe实现ISAPI 筛选器的添加代码
- ubbcode简单实用
- BAT批量去除文件首行以及批量合并文件脚本
- Ubuntu中为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序
- IOS 开发之Swift 元组的实例详解
- ASP.NET中Cookie的使用方法
- PHP ajax 分页类代码
- Android监听软键盘弹出与隐藏的两种方法
- php警告Creating default object from empty value 问题的解决方法
- JavaScript 布尔操作符解析 && || !
- 彻底掌握ASP分页技术杂谈
- js字符串截取函数slice、substring和substr的比较
- serv-u安全配置完整版
- Java中的深拷贝和浅拷贝介绍
- 杂谈try-catch-finally异常处理