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)
読んだあと公式文書の目的がまだ理解できませんUserMixin
。誰か簡単に説明してもらえませんか?
ベストアンサー1
Flask-login には、次のプロパティを持つ User モデルが必要です。
- ユーザーが有効な資格情報を提供している場合にTrueを返すis_authenticated()メソッドがあります。
- ユーザーのアカウントがアクティブであればTrueを返すis_active()メソッドがある
- 現在のユーザーが匿名ユーザーの場合にTrueを返すis_anonymous()メソッドがあります
- get_id() メソッドがあり、User インスタンスを指定すると、そのオブジェクトの一意の ID を返します。
UserMixin クラスは、このプロパティの実装を提供します。そのため、is_authenticated
自分でメソッドを記述する代わりに、たとえば、提供されたログイン資格情報が正しいかどうかを確認するために呼び出すことができます。