Flask框架内置了一个装饰器before_request,使用它可以在请求之前做一些事。。。。

 

from flask import Flask, request

# 实例化一个Flask对象
app = Flask(__name__)
# 打印默认配置信息

# 引入开发环境的配置
app.config.from_object('settings.DEV')


# 引入生产环境的配置
# app.config.from_object('settings.Pro')

@app.before_request
def before():
    print('在flask route 请求 之前执行。。。')
    if request.path == '/index1':  # index1请求放行
        return None
    if request.path == '/index2':  # index2请求拦截
        return '没权限'


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


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


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

 

 

浏览器发送请求: http://127.0.0.1:5000/index1

控制台打印如下:

在flask route 请求 之前执行。。。
index1
127.0.0.1 - - [13/Feb/2020 15:08:34] "GET /index1 HTTP/1.1" 200 -

 

 

总结: 

  @app.before_request装饰器装饰的函数在视图请求之前执行

 

posted on 2020-02-13 15:19  显示账号  阅读(529)  评论(0编辑  收藏  举报