装饰器的顺序在Flask视图上是否重要?

sha*_*deh 10 python flask flask-login python-decorators

我正在使用login_required装饰器和另一个分页输出数据的装饰器.重要的是哪一个先来?

dav*_*ism 11

虽然在这种情况下可能不会出现任何问题,但无论顺序如何,您可能都希望login_required先执行,这样您就不会进行查询和分页结果,这些结果将被丢弃.

装饰器将原始函数从底部包装到顶部,因此在调用函数时,每个装饰器添加的包装器从上到下执行.所以@login_required应该高于假定用户已登录的任何其他装饰器.


更广泛的答案是它取决于每个装饰器正在做什么.你需要考虑你的程序的流程,以及它是否符合逻辑意义.