Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为Flask中的所有蓝图注册全局请求处理程序_Python_Flask - Fatal编程技术网

Python 为Flask中的所有蓝图注册全局请求处理程序

Python 为Flask中的所有蓝图注册全局请求处理程序,python,flask,Python,Flask,我正在尝试注册Flask中所有路由(在所有蓝图中)的请求前和请求后处理程序 注册单个蓝图很容易: main = flask.Blueprint('main', __name__) @main.before_request def do_something(): flask.request.my_value = 'my_value' 然而,我不知道如何为所有的蓝图做到这一点。特别是因为我使用factory函数创建我的应用程序: def create_app(): from my

我正在尝试注册Flask中所有路由(在所有蓝图中)的
请求前
请求后
处理程序

注册单个蓝图很容易:

main = flask.Blueprint('main', __name__)

@main.before_request
def do_something():
    flask.request.my_value = 'my_value'
然而,我不知道如何为所有的蓝图做到这一点。特别是因为我使用factory函数创建我的应用程序:

def create_app():
    from my_package.blueprints.main import main
    from my_package.blueprints.user import user

    app = Flask(__name__)
    app.register_blueprint(main)
    app.register_blueprint(user)

    return app
理想情况下,我希望将所有中间件功能保存在一个单独的文件中,其中包含
root
super
蓝图。或者,我想我可以迭代
app
对象上的所有蓝图,并在每个蓝图上注册这些处理程序,但这似乎是多余的 您可以在任何蓝图上使用请求前
和请求后
注册全局处理程序:

main = flask.Blueprint('main', __name__)

@main.before_request
def do_something():
    flask.request.my_value = 'my_value'
@any\u bp.before\u app\u请求
所有请求之前的def:
通过
方法2 在请求前使用
和请求后使用
,但在应用程序工厂中直接为
应用程序注册请求处理程序

def create_app():
app=烧瓶(名称)
@请求前的应用程序
所有请求之前的def:
通过
返回应用程序