【flask入门系列】异常处理

简介: 今天简单介绍一哈flask中对于异常处理的办法,算是属于表较冷门的知识点了,因为我们用python的知识来实现这些需求处理,但我们还是要学习一下,因为他可以帮我们集中处理异常,而不用在每个视图中进行异常处理。

前言

今天简单介绍一哈flask中对于异常处理的办法,算是属于表较冷门的知识点了,因为我们用python的知识来实现这些需求处理,但我们还是要学习一下,因为他可以帮我们集中处理异常,而不用在每个视图中进行异常处理。

HTTP异常主动抛出

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

code-HTTP的错误状态码。只能抛出http协议的错误代码。

#导入Flask类和request对象
from flask import Flask,request,abort
app = Flask(__name__)


@app.route('/articles')
def get_articles():
    channel_id = request.args.get('channel_id')
    if channel_id is None:
        abort(400)   #400 Bad Request
    return 'you want get articles of channel {}'.format(channel_id)
# Flask应用程序的run方法启动web服务器
if __name__ == '__main__':
    app.run(port=8000)

在这里插入图片描述

捕获错误

  • errorhandler装饰器

注册一个错误处理程序,当程序抛出指定错误状态码的时候,就会调用该装饰器所装饰的方法。

  • 参数

code_or_exception - HTTP的错误状态码或指定异常。

  • 例如统一处理状态码为500的错误给用户有好的提示。
@app.errorhandler(500)
def internal_server_err(e):
    return "服务器搬家了"
  • 捕获指定异常
@app.errorhandler(ZeroDivisionError)
def zero_division_err(e):
    return "除数不能为零"

例:

#导入Flask类
from flask import Flask
app = Flask(__name__)

@app.errorhandler(ZeroDivisionError)
def zero_division_err(e):
    # 这里的e是异常对象
    print(e)
    return "除数不能为零"

@app.route("/")
def index():
    s = 1/0
    return s
# Flask应用程序的run方法启动web服务器
if __name__ == '__main__':
    app.run(port=8000)
相关文章
|
7月前
|
安全 网络安全 数据安全/隐私保护
Flask 入门系列教程(六)
Flask 入门系列教程(六)
|
7月前
|
关系型数据库 数据库连接 数据库
Flask应用基础入门总结
Flask应用基础入门总结
78 0
|
安全 测试技术 网络安全
软件测试|测试平台开发-Flask 入门:URL组成部分详解
软件测试|测试平台开发-Flask 入门:URL组成部分详解
|
2月前
|
前端开发 JavaScript 数据库连接
一、Flask入门介绍
一、Flask入门介绍
47 1
|
7月前
|
数据库连接 Python
Flask 框架入门与实践:构建你的第一个 Web 应用
【5月更文挑战第18天】本文介绍了使用 Flask 框架构建第一个 Web 应用的步骤。首先通过 `pip install Flask` 安装框架,然后编写基本的 Python 代码创建应用,包括定义路由和响应。示例展示如何显示 "Hello, World!",并扩展到显示用户信息的功能。利用模板(如 `index.html`)可使页面更丰富。随着学习深入,可以利用 Flask 的更多特性,如表单处理和数据库连接,来构建更复杂的 Web 应用。本文旨在激发读者对 Flask 和 Web 开发的兴趣,鼓励不断探索和实践。
157 7
|
前端开发 JavaScript 数据安全/隐私保护
Flask快速开发Web应用:入门到精通必备知识
Flask快速开发Web应用:入门到精通必备知识
104 0
|
7月前
|
Web App开发 前端开发 JavaScript
Flask 入门系列教程(一)
Flask 入门系列教程(一)
268 2
|
7月前
|
SQL 关系型数据库 Shell
Flask 入门系列教程(五)
Flask 入门系列教程(五)
110 1
|
7月前
|
安全 数据安全/隐私保护 Python
Flask 入门系列教程(四)
Flask 入门系列教程(四)
129 0
|
7月前
|
存储 前端开发 JavaScript
Flask 入门系列教程(三)
Flask 入门系列教程(三)