hanabiapp.models.user
1from flask_login import UserMixin 2from werkzeug.security import generate_password_hash, check_password_hash 3from .. import db, login 4 5class User(UserMixin, db.Model): 6 """ 7 ユーザー情報をデータベースに保存するためのモデル. 8 9 Attributes: 10 id (int): ユーザーの一意の識別子 11 username (str): ユーザー名 12 password_hash (str): ハッシュ化されたパスワード 13 consent (bool): 利用規約への同意フラグ 14 pre_survey (bool): 事前アンケート回答状況 15 total_play_time (int): 総プレイ時間(秒) 16 total_game_play_num (int): 総プレイ回数 17 """ 18 __tablename__ = 'user' 19 id = db.Column(db.Integer, primary_key=True, autoincrement=True) 20 username = db.Column(db.String(32), nullable=False) 21 password_hash = db.Column(db.String(256), nullable=False) 22 consent = db.Column(db.Boolean, default=False, nullable=False) 23 pre_survey = db.Column(db.Boolean, default=False, nullable=False) 24 total_play_time = db.Column(db.Integer, default=0, nullable=False) 25 total_game_play_num = db.Column(db.Integer,default=0, nullable=False) 26 27 def set_password(self, password): 28 """ 29 ユーザーのパスワードをハッシュ化して保存する関数. 30 31 Args: 32 password (str): 平文のパスワード 33 """ 34 self.password_hash = generate_password_hash(password) 35 36 def check_password(self, password): 37 """ 38 入力されたパスワードが保存されているハッシュと一致するかを確認する関数. 39 40 Args: 41 password (str): 検証するパスワード 42 43 Returns: 44 bool: パスワードが一致すれば True,そうでなければ False 45 """ 46 return check_password_hash(self.password_hash, password) 47 48@login.user_loader 49def load_user(user_id): 50 """ 51 Flask-Login のユーザーローダー. 52 53 Args: 54 user_id (int): ロードするユーザーの ID 55 56 Returns: 57 User: 指定された ID のユーザーオブジェクト 58 """ 59 return User.query.get(int(user_id))
class
User(sqlalchemy.orm.decl_api._DynamicAttributesType, sqlalchemy.inspection.Inspectable[sqlalchemy.orm.mapper.Mapper[typing.Any]]):
6class User(UserMixin, db.Model): 7 """ 8 ユーザー情報をデータベースに保存するためのモデル. 9 10 Attributes: 11 id (int): ユーザーの一意の識別子 12 username (str): ユーザー名 13 password_hash (str): ハッシュ化されたパスワード 14 consent (bool): 利用規約への同意フラグ 15 pre_survey (bool): 事前アンケート回答状況 16 total_play_time (int): 総プレイ時間(秒) 17 total_game_play_num (int): 総プレイ回数 18 """ 19 __tablename__ = 'user' 20 id = db.Column(db.Integer, primary_key=True, autoincrement=True) 21 username = db.Column(db.String(32), nullable=False) 22 password_hash = db.Column(db.String(256), nullable=False) 23 consent = db.Column(db.Boolean, default=False, nullable=False) 24 pre_survey = db.Column(db.Boolean, default=False, nullable=False) 25 total_play_time = db.Column(db.Integer, default=0, nullable=False) 26 total_game_play_num = db.Column(db.Integer,default=0, nullable=False) 27 28 def set_password(self, password): 29 """ 30 ユーザーのパスワードをハッシュ化して保存する関数. 31 32 Args: 33 password (str): 平文のパスワード 34 """ 35 self.password_hash = generate_password_hash(password) 36 37 def check_password(self, password): 38 """ 39 入力されたパスワードが保存されているハッシュと一致するかを確認する関数. 40 41 Args: 42 password (str): 検証するパスワード 43 44 Returns: 45 bool: パスワードが一致すれば True,そうでなければ False 46 """ 47 return check_password_hash(self.password_hash, password)
ユーザー情報をデータベースに保存するためのモデル.
Attributes:
- id (int): ユーザーの一意の識別子
- username (str): ユーザー名
- password_hash (str): ハッシュ化されたパスワード
- consent (bool): 利用規約への同意フラグ
- pre_survey (bool): 事前アンケート回答状況
- total_play_time (int): 総プレイ時間(秒)
- total_game_play_num (int): 総プレイ回数
User(**kwargs)
A simple constructor that allows initialization from kwargs.
Sets attributes on the constructed instance using the names and
values in kwargs
.
Only keys that are present as attributes of the instance's class are allowed. These could be, for example, any mapped columns or relationships.
def
set_password(self, password):
28 def set_password(self, password): 29 """ 30 ユーザーのパスワードをハッシュ化して保存する関数. 31 32 Args: 33 password (str): 平文のパスワード 34 """ 35 self.password_hash = generate_password_hash(password)
ユーザーのパスワードをハッシュ化して保存する関数.
Arguments:
- password (str): 平文のパスワード
def
check_password(self, password):
37 def check_password(self, password): 38 """ 39 入力されたパスワードが保存されているハッシュと一致するかを確認する関数. 40 41 Args: 42 password (str): 検証するパスワード 43 44 Returns: 45 bool: パスワードが一致すれば True,そうでなければ False 46 """ 47 return check_password_hash(self.password_hash, password)
入力されたパスワードが保存されているハッシュと一致するかを確認する関数.
Arguments:
- password (str): 検証するパスワード
Returns:
bool: パスワードが一致すれば True,そうでなければ False
@login.user_loader
def
load_user(user_id):
49@login.user_loader 50def load_user(user_id): 51 """ 52 Flask-Login のユーザーローダー. 53 54 Args: 55 user_id (int): ロードするユーザーの ID 56 57 Returns: 58 User: 指定された ID のユーザーオブジェクト 59 """ 60 return User.query.get(int(user_id))
Flask-Login のユーザーローダー.
Arguments:
- user_id (int): ロードするユーザーの ID
Returns:
User: 指定された ID のユーザーオブジェクト