修改Flask-Login @Login_Required装饰器

时间:2016-02-11 23:51:18

标签: python flask flask-login

我想更改默认的Flask-Login @login_required,以便检查数据库是否禁止用户。

我知道我可以创建一个自定义装饰器来检查我的数据库并将其添加到我的所有视图中,但是由于我拥有的视图数量,这将不太有用;它不方便。

这可能与否?感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用下一种方法:

from flask.ext.login import LoginManager

@login_manager.user_loader
def load_user_if_not_banned(user_id):        
    user = ... # Load user from DB
    return user if not user.is_banned else None

答案 1 :(得分:0)

您可以实现自己的login_required装饰器,这实际上非常简单。本文https://medium.com/@nguyenkims/python-decorator-and-flask-3954dd186cda给出了一些关于如何实现这个装饰器的伪代码。