我正在使用 login_required
装饰器和另一个对输出数据进行分页的装饰器。谁先来重要吗?
最佳答案
虽然在这种情况下可能不会有任何问题,无论顺序如何,您可能希望 login_required
首先执行,这样您就不会进行查询和分页结果扔掉了。
装饰器将原始函数从下到上包装起来,因此当函数被调用时,每个装饰器添加的包装器从上到下执行。 @login_required
应该在假设用户已登录的任何其他装饰器下方,以便在其他装饰器之前评估其条件。
@app.route()
必须始终是顶部、最外层的装饰器。否则路由将被注册为一个不代表所有装饰器的函数。
更广泛的答案是,这取决于每个装饰者在做什么。您需要考虑程序的流程,以及将一个程序放在另一个之前是否合乎逻辑。
关于python - Flask View 中装饰器的顺序是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28204071/