python – 在Flask-Login中使用的“is_authenticated”方法的要
发布时间:2020-12-16 23:40:47 所属栏目:Python 来源:网络整理
导读:我现在正在通过Flask Mega-Tutorial进行工作,我遇到了这个代码: class User(db.Model): id = db.Column(db.Integer,primary_key = True) nickname = db.Column(db.String(64),unique = True) email = db.Column(db.String(120),unique = True) role = db.Co
我现在正在通过Flask Mega-Tutorial进行工作,我遇到了这个代码:
class User(db.Model): id = db.Column(db.Integer,primary_key = True) nickname = db.Column(db.String(64),unique = True) email = db.Column(db.String(120),unique = True) role = db.Column(db.SmallInteger,default = ROLE_USER) posts = db.relationship('Post',backref = 'author',lazy = 'dynamic') def is_authenticated(self): return True def is_active(self): return True def is_anonymous(self): return False def get_id(self): return unicode(self.id) def __repr__(self): return '<User %r>' % (self.nickname) is_authenticated,is_active和is_anonymous对我来说似乎很奇怪,他们什么时候会返回除预定值之外的任何东西? 有人可以向我解释为什么Flask-Login使我使用这些看似无用的方法? 解决方法
首先,is_anonymous()和is_authenticated()是彼此的倒数.如果你愿意,你可以将一个定义为另一个的否定.
您可以使用这两种方法来确定用户是否登录. 当没有人登录时Flask-Login的current_user设置为AnonymousUser对象.此对象使用False对is_authenticated()和is_active()进行响应,并使用True响应is_anonymous(). is_active()方法有另一个重要用途.而不是总是返回True,就像我在本教程中提出的那样,你可以使它被禁止或停用的用户返回False,这些用户将不被允许登录. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |