[解決済み] FlaskのUserMixinとは何ですか?
2022-02-26 13:57:17
質問
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
. どなたか簡単に説明していただけませんか?
解決方法は?
Flask-loginは、以下のプロパティを持つUserモデルを必要とします。
- ユーザーが有効な証明書を提供した場合に True を返す is_authenticated() メソッドを持つ。
- is_active() メソッドを実装しており、 ユーザーのアカウントが有効な場合に True を返します。
- is_anonymous()メソッドがあり、現在のユーザが匿名ユーザの場合にTrueを返します。
- は、User インスタンスを指定すると、そのオブジェクトの一意の ID を返す get_id() メソッドを備えています。
UserMixinクラスは、このプロパティの実装を提供します。そのため、例えば
is_authenticated
を使用すると、ログイン情報が正しいかどうかをチェックするためのメソッドを自分で書く必要がなくなります。
関連
-
Python Decorator 練習問題
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] __init__.py は何のためにあるのですか?
-
[解決済み] Flaskのリクエストで受信したデータを取得する
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】__str__と__repr__の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python call matlab メソッドの詳細
-
PicgoのイメージベッドツールをPythonで実装する
-
Python カメの描画コマンドとその例
-
python implement mysql add delete check change サンプルコード
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
任意波形を生成してtxtで保存するためのPython実装
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Python elifの構文が無効です【終了しました