加入收藏 | 设为首页 | 会员中心 | 我要投稿 大庆站长网 (https://www.0459zz.com/)- 科技、智能边缘云、事件网格、云计算、站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在Flask-Login中使用的“is_authenticated”方法的要点是什么?

发布时间:2020-09-25 15:47:53 所属栏目: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

我现在正在通过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,这些用户将不被允许登录.

(编辑:大庆站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读