您提供的 AdminModel
是一个使用 SQLAlchemy 定义的 Flask 模型,用于管理管理员用户的数据。以下是对该模型的详细分析以及如何通过 Flask 的 shell 界面添加数据的步骤。
1. 模型分析
1.1 表结构
-
表名:
admin
(在SCHEMA
模式下的admin
表)。
-
字段:
admin_id
:主键,自增类型 (BigInteger
)。mobile
:手机号码,可为空 (String(20)
)。username
:用户名,可为空,并建立索引 (String(64)
)。fullname
:全名,不允许为空,并建立索引 (VARCHAR(64)
)。password_encrypted
:加密后的密码 (BYTEA
)。initial_password
:初始密码 (VARCHAR(64)
)。initial_password_login_time
:初始密码登录时间 (TIMESTAMP
),可为空。last_login_time
:最后登录时间 (TIMESTAMP
),可为空。status
:状态,整数类型,默认为0
,不允许为空。delete_dt
:删除时间 (Integer
),可为空。create_operator_id
:创建操作员 ID,默认为0
,不允许为空,并建立索引 (BigInteger
)。update_operator_id
:更新操作员 ID,默认为0
,不允许为空,并建立索引 (BigInteger
)。
1.2 特殊属性和方法
-
密码处理:
@property password
:获取解密后的密码。@password.setter
:设置密码时自动加密并存储到password_encrypted
字段。
-
to_dict
方法:- 将模型实例转换为字典格式,便于序列化。
initial_password
字段:如果当前密码与初始密码相同,则显示初始密码;否则,显示为空字符串。last_login_time
:硬编码为"2024-02-21 11:53:35"
,这可能是一个占位符或需要根据实际情况调整。
1.3 其他配置
-
query_class = QueryWithSoftDelete
:- 表明该模型使用了软删除(soft delete)机制,可能通过
delete_dt
字段来标记删除时间,而不是真正删除记录。
- 表明该模型使用了软删除(soft delete)机制,可能通过
-
BaseModel._declare_dt_column()
:- 调用基类的方法,可能用于声明时间戳字段(如
created_at
,updated_at
等),具体取决于BaseModel
的实现。
- 调用基类的方法,可能用于声明时间戳字段(如
2. 通过 Flask Shell 添加数据
要通过 Flask 的 shell 界面添加数据,可以按照以下步骤操作:
2.1 启动 Flask Shell
在终端中,导航到您的 Flask 项目目录,并启动 Flask shell:
flask shell
注意:确保您的 Flask 应用已经正确配置,并且所有必要的环境变量(如 FLASK_APP
)已经设置。
2.2 导入必要的模块和模型
在 shell 中,导入 db
会话和 AdminModel
模型: