我想让Flask Blueprint在执行任何路由之前始终运行一个方法.我没有用自定义装饰器装饰我的蓝图中的每个路线方法,而是希望能够做到这样的事情:
def my_method(): do_stuff section = Blueprint('section',__name__) # Register my_method() as a setup method that runs before all routes section.custom_setup_method(my_method()) @section.route('/two') def route_one(): do_stuff @section.route('/one') def route_two(): do_stuff
然后基本上/ section / one和/ section / two将在执行route_one()或route_two()中的代码之前运行my_method().
有没有办法做到这一点?
解决方法
您可以使用
before_request装饰器来获取蓝图.像这样:
@section.before_request def my_method(): do_stuff
这会自动注册要在属于蓝图的任何路由之前运行的函数.