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)

after_request

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

@app.after_request
def after_request(response):
    return response

before_first_request

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

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

@app.before_first_request
def before_first_request():
    print("before_first_request")

teardown_request

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

@app.teardown_request
def teardown_request(exception):
    print(exception)

猜你喜欢

转载自blog.csdn.net/HeroicLee/article/details/120991393