Flask框架之异常处理和请求钩子

异常处理

抛出异常

在Flask框架中,我们使用abort()方法,抛出异常信息。

代码如下:

from flask import abort
# 抛出异常
@app.route('/error')
def error():
    return abort(404)

捕获和处理异常

在Flask框架中,我们使用@app.errorhandler()装饰器,实现异常的捕获和处理。

代码如下:

# 捕获异常
@app.errorhandler(404)
def error_action(e):
    # 必须接受一个参数e
    return 'error....'

请求钩子

before_first_request(第一次请求之前执行)

在Flask框架中,我们可以使用@app.before_first_request装饰器,来实现钩子函数。

代码如下:

# 第一请求之前执行
@app.before_first_request
def before_first_request():
    print('before_first_request')

before_request(每次请求之前执行)

在Flask框架中,我们可以使用@app.before_request装饰器,来实现钩子函数。

代码如下:

# 每次请求之前执行
@app.before_request
def before_request():
    print('before_request')

after_request(每次请求后执行,不出现异常)

在Flask框架中,我们可以使用@app.after_request装饰器,来实现钩子函数。

代码如下:

# 每次请求后执行,不能出现异常
@app.after_request
def after_request(response):
    # response参数不能缺少,且必须响应
    print('after_request')
    return response

teardown_request(每次请求后执行,接收处理异常)

在Flask框架中,我们可以使用@app.teardown_request装饰器,来实现钩子函数。

代码如下:

# 每次请求后执行,捕获并处理异常
@app.teardown_request
def teardown_request(e):
    # 必须接收参数e
    print(e)
    print('teardown_request')
该花的钱要花,该吃的饭要吃。
原文地址:https://www.cnblogs.com/chao666/p/12397230.html