gpt4 book ai didi

python - Flask 中的 UserMixin 是什么?

转载 作者:行者123 更新时间:2023-12-03 16:01:48 31 4
gpt4 key购买 nike

from datetime import datetime
from werkzeug.security import generate_password_hash
from werkzeug.security import check_password_hash
from flask_login import UserMixin
from app import db


class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), index=True, unique=True)
email = db.Column(db.String(64), index=True, unique=True)
password_hash = db.Column(db.String(64))
posts = db.relationship('Post', backref='author', lazy='dynamic')

def set_password(self, password):
self.password_hash = generate_password_hash(password)

def check_password(self, password):
return check_password_hash(self.password_hash, password)

def __repr__(self):
return '<User{}>'.format(self.username)

阅读 the official documentation 后,我还无法理解 UserMixin 的用途。任何人都可以简要描述一下吗?

最佳答案

Flask-login 需要一个具有以下属性的 User 模型:

  • 有一个 is_authenticated() 方法,如果用户提供了有效的凭据,则返回 True
  • 有一个 is_active() 方法,如果用户的帐户处于事件状态,则返回 True
  • 有一个 is_anonymous() 方法,如果当前用户是匿名用户,则返回 True
  • 有一个 get_id() 方法,给定一个 User 实例,返回该对象的唯一 ID

  • UserMixin 类提供此属性的实现。这是您可以调用例如 is_authenticated 来检查提供的登录凭据是否正确的原因,而不必自己编写方法来执行此操作。

    关于python - Flask 中的 UserMixin 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63231163/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com