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