flask中间件请求流程

from flask import Flask,session,url_for,request,flash,get_flashed_messages

app = Flask(__name__)

app.debug = True
app.secret_key='ssssssssssssssss'

#请求到来之前
@app.before_request
def before_request():
    # print(args)
    # print(**kwargs)
    request.name = 'xxx'
    request.POST = 'TANGDA'
    session['name']='sssssssssssssss'
    print('来了')
    return 'ssssssssss'


@app.before_request
def before_request1(*args,**kwargs):
    print(args)
    print(**kwargs)
    print('来了222222222')

@app.after_request
def after_request(response):

    print('走了')
    print(request.name)
    print(request.POST)
    print(session['name'])

    print(type(response))

    return response
    # return 1111





@app.route('/',methods=['GET','POST'])
def index():
    # flash('successful',category='xxxx')
    # url = url_for('test')
    return 'ok'


# @app.route('/test/',methods=['GET','POST'])
# def test():
#     return 'test'

if __name__ == '__main__':
    app.run()

执行结果:

来了
走了
xxx
TANGDA
sssssssssssssss
<class 'flask.wrappers.Response'>

 

分析流程:

当第一个before_request return返回之后接下来before_request都不走了,然后所有after都要走

并且请求来的顺序是从上到下  ,请求走的顺序是从下到上 和请求来的时候顺序相反。

这是我们可以在请求来的时候写一些方法,比如设置session值,修改request.POST='xxx'

请求走的时候,获取这些信息

 

posted @ 2019-07-17 20:57  夜晚的潜水艇  阅读(260)  评论(0)    收藏  举报