python - Flask View 中装饰器的顺序是否重要?

标签 python flask python-decorators flask-login

我正在使用 login_required 装饰器和另一个对输出数据进行分页的装饰器。谁先来重要吗?

最佳答案

虽然在这种情况下可能不会有任何问题,无论顺序如何,您可能希望 login_required 首先执行,这样您就不会进行查询和分页结果扔掉了。

装饰器将原始函数从下到上包装起来,因此当函数被调用时,每个装饰器添加的包装器从上到下执行。 @login_required 应该在假设用户已登录的任何其他装饰器下方,以便在其他装饰器之前评估其条件。

@app.route() 必须始终是顶部、最外层的装饰器。否则路由将被注册为一个不代表所有装饰器的函数。


更广泛的答案是,这取决于每个装饰者在做什么。您需要考虑程序的流程,以及将一个程序放在另一个之前是否合乎逻辑。

关于python - Flask View 中装饰器的顺序是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28204071/

相关文章:

javascript - 从 javascript 与正在运行的 python 进行通信的正确方法

python - 在 Flask-SQLAlchemy 的同一个类中使用不同的绑定(bind)

python - 在函数内部使用装饰器

python - 我可以选择要在shutil 中存档的文件吗?

python , NumPy : force new arrays to be as type float

python - 如何消除反斜杠后的空格(Python 3.4)

python - 子集 pandas 数据帧以根据另一个数据帧中的值获取特定行数

python - Flask 通过 url 变量传递另一个 url

python - 为类动态添加装饰器

python - 菊花链式 Python/Django 自定义装饰器