current_user
由Flask-login
定义.且在视图函数和模板中自动可用.这个变量的值是当前登录的用户。如果用户尚未登录,则是一个匿名用户用户代理对象。如果是匿名用户,is_authenticated()
方法返回False
.所以这个方法可用来判断当前用户是否已经登录。
Note:如果要对匿名用户有自定义的需求,可以提供一个可调用的类或者工厂函数,基于login_manager
来创建匿名用户:
login_manager.anonymous_user = MyAnonymousUser
《Flask Web开发》书本中的例子为:
class AnonymousUser(AnonymousUserMixin):
def can(self,permissions):
return False
def is_administrator(self):
return False
login_manager.anonymous_user = AnonymousUser
这个对象继承自Flask-Login
中的AnonymousUserMixin
类,并将其设为用户未登录时current_user
的值.这样程序就不用先检查用户是否登录,就能自由调用current_user.can()
和current_user.is_administrator()
我们通过login_manager.anonymous_user
属性告诉Flask-Login
使用应用自定义的匿名用户类。
更多信息:
flask_login的使用
flask_login