当前位置:   article > 正文

flask框架之请求扩展、请求生命周期_flask生命周期

flask生命周期

前言

这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题

于是乎,我自己开发了一款面试宝典,希望能帮到大家,也希望有更多的Python新人真正加入从事到这个行业里,让python火不只是停留在广告上。

微信小程序搜索:Python面试宝典

或可关注原创个人博客:https://lienze.tech

也可关注微信公众号,不定时发送各类有趣猎奇的技术文章:Python编程学习

请求扩展

flask请求扩展类似django的请求中间件,又称作钩子方法


before_request

before_request装饰的函数是执行响应函数之前执行,如果有多个before_request他会自上而下按照顺序执行

如果before_request有返回值,那后面的before_request都不会执行,且响应函数也不会执行

一般我们不会定义返回值在这个钩子方法中

@app.before_request
def before_request():
    token = request.headers.get("Authorization")
    if not token:
        abort(401)
  • 1
  • 2
  • 3
  • 4
  • 5
after_request

after_request响应函数执行之后触发执行的,前提是这次请求没有触发错误,参数代表着返回的响应对象

@app.after_request
def after_request(response):
    return response
  • 1
  • 2
  • 3
before_first_request

当flask项目启动后的页面请求的第一次才会执行,第二次不会执行。与浏览器无关,执行顺序是从上往下

可以理解为全局第一次的请求钩子方法,在一次服务启动期间,只可使用一次

@app.before_first_request
def before_first_request():
    print("before_first_request")
  • 1
  • 2
  • 3
teardown_request

在每次请求后执行,哪怕出现了错误也会执行,参数代表着抛出的错误

@app.teardown_request
def teardown_request(exception):
    print(exception)
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/423663
推荐阅读
相关标签
  

闽ICP备14008679号