Flask框架从入门到精通之请求钩子(二十二)

栏目: Python · 发布时间: 6年前

内容简介:Flask的请求钩子指的是在执行视图函数前后执行的一些函数,我们可以在这些函数里面做一些操作。Flask利用装饰器给我们提供了四种钩子函数。Flask里面的钩子跟Django里面的中间件类似。我们在浏览器第一次访问:

Flask的请求钩子指的是在执行视图函数前后执行的一些函数,我们可以在这些函数里面做一些操作。Flask利用装饰器给我们提供了四种钩子函数。

  • before_first_request:在处理第一个请求前执行。比如链接数据库操作
  • before_request:在每次请求前执行。比如权限校验
  • after_request:每次请求之后调用,前提是没有未处理的异常抛出
  • teardown_request:每次请求之后调用,即使有未处理的异常抛出

Flask里面的钩子跟Django里面的中间件类似。

二、使用

from flask import Flask

app = Flask(__name__)


@app.route('/')
def index():
    print('视图函数执行')
    return 'index page'


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


# 在每一次请求前都会执行
@app.before_request
def before_request():
    print('before_request')


# 在请求之后运行
@app.after_request
def after_request(response):
    # response: 就是前面的请求处理完毕之后, 返回的响应数据,前提是视图函数没有出现异常
    # 如果需要对响应做额外处理,可以再这里进行
    # json.dumps 配置请求钩子
    # response.headers["Content-Type"] = "application/json"
    print('after_request')
    return response


# 无论视图函数是否出现异常,每一次请求之后都会调用,会接受一个参数,参数是服务器出现的错误信息
@app.teardown_request
def teardown_request(error):
    print('teardown_request: error %s' % error)


if __name__ == '__main__':
    app.run(debug=True)
复制代码

我们在浏览器第一次访问:

before_first_request
before_request
视图函数执行
after_request
teardown_request: error None
复制代码

我们在刷新浏览器试一下:

before_request
视图函数执行
after_request
teardown_request: error None

复制代码

欢迎关注我的公众号:

Flask框架从入门到精通之请求钩子(二十二)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言程序设计

C语言程序设计

K. N. King / 吕秀锋、黄倩 / 人民邮电出版社 / 2010-4 / 79.00元

时至今日, C语言仍然是计算机领域的通用语言之一,但今天的 C语言已经和最初的时候大不相同了。本书最主要的一个目的就是通过一种“现代方法”来介绍 C语言,书中强调标准 C,强调软件工程,不再强调“手工优化”。这一版中紧密结合了 C99标准,并与 C89标准进行对照,补充了 C99中的最新特性。本书分为 C语言的基础特性、 C语言的高级特性、 C语言标准库和参考资料 4个部分。每章末尾都有一个“问与......一起来看看 《C语言程序设计》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具