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.

id
username
password_hash
consent
pre_survey
total_play_time
total_game_play_num
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 のユーザーオブジェクト