Python 为Flask中的所有蓝图注册全局请求处理程序
我正在尝试注册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
请求前和请求后处理程序
注册单个蓝图很容易:
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:
通过
返回应用程序