Flask Web开发当中的current_user

如题所述

第1个回答  2022-07-29

current_user 由 Flask-login 定义.且在视图函数和模板中自动可用.这个变量的值是 当前登录的用户 。如果用户尚未登录,则是一个匿名用户用户代理对象。如果是匿名用户, is_authenticated() 方法返回 False .所以这个方法可用来判断当前用户是否已经登录。

Note: 如果要对匿名用户有自定义的需求,可以提供一个可调用的类或者工厂函数,基于 login_manager 来创建匿名用户:

login_manager.anonymous_user = MyAnonymousUser

《Flask Web开发》书本中的例子为:

这个对象继承自 Flask-Login 中的 AnonymousUserMixin 类,并将其设为用户未登录时 current_user 的值.这样程序就不用先检查用户是否登录,就能自由调用 current_user.can() 和 current_user.is_administrator()
我们通过 login_manager.anonymous_user 属性告诉 Flask-Login 使用应用自定义的匿名用户类。

更多信息:
flask_login的使用
flask_login