本文档列出了 zhixuewang 库中定义的所有主要数据模型。这些模型类通常位于 zhixuewang.models 模块中。
定义性别常量。
定义用户角色。
| 成员 | 值 | 描述 |
|---|
student | 0 | 学生 |
teacher | 1 | 教师 |
parent | 2 | 家长 |
定义教师的具体角色。
| 成员 | 值 | 描述 |
|---|
TEACHER | "老师" | 普通教师 |
HEADMASTER | "校长" | 校长 |
VICE_HEADMASTER | "副校长" | 副校长 |
HEADTEACHER | "班主任" | 班主任 |
VICE_HEADTEACHER | "副班主任" | 副班主任 |
SCHOOL_ADMINISTRATOR | "校管理员" | 校管理员 |
GRADE_DIRECTER | "年级组长" | 年级组长 |
SUBJECT_LEADER | "备课组长" | 备课组长 |
基础账户类。
| 属性 | 类型 | 描述 |
|---|
role | Role | 用户角色 |
username | str | 用户名(解码后的 uname cookie) |
方法:
| 方法 | 返回类型 | 描述 |
|---|
get_session() | Session | 获取当前会话对象 |
to_student() | StudentAccount | 转换为学生账号(仅类型提示) |
to_teacher() | TeacherAccount | 转换为教师账号(仅类型提示) |
to_parent() | ParentAccount | 转换为家长账号(仅类型提示) |
get_personal_messages(page_index, page_size) | PersonalMessageList | 获取私信消息列表 |
send_personal_message(receiver_id, content) | bool | 发送私信消息 |
描述一个学年。
| 属性 | 类型 | 描述 |
|---|
name | str | 学年名称(如 "2023-2024学年") |
code | str | 学年代码 |
begin_time | str | 开始时间 |
end_time | str | 结束时间 |
描述一个年级。
| 属性 | 类型 | 描述 |
|---|
name | str | 年级名称(如 "初一", "高二") |
code | str | 年级代码 |
phase_name | str | 学段名称(如 "初中", "高中") |
phase_code | str | 学段代码 |
描述一所学校。
| 属性 | 类型 | 描述 |
|---|
id | str | 学校 ID |
name | str | 学校名称 |
描述一个班级。
| 属性 | 类型 | 描述 |
|---|
id | str | 班级 ID |
name | str | 班级名称 |
grade | Grade | 所属年级 |
school | School | 所属学校 |
人员的基本属性。
| 属性 | 类型 | 描述 |
|---|
id | str | 用户 ID |
name | str | 姓名 |
gender | Sex | 性别 (默认 `Se |
继承自 Person,包含教师特有的信息。
| 属性 | 类型 | 描述 |
|---|
login_name | str | 登录名 |
roles | List[TeacherRole] | 教师角色列表 |
province | Optional[Region] | 省份 |
city | Optional[Region] | 城市 |
district | Optional[Region] | 区县 |
mobile | str | 手机号 |
avatar | str | 头像 URL |
继承自 Person,包含学生特有的信息。
| 属性 | 类型 | 描述 |
|---|
code | str | 准考证号/学籍号 |
clazz | StuClass | 所属班级 |
学科的基本信息。
| 属性 | 类型 | 描述 |
|---|
name | str | 学科名称 |
code | str | 学科代码 |
继承自 BasicSubject,包含更多学科详情。
| 属性 | 类型 | 描述 |
|---|
id | str | 学科 ID (对于具体考试,通常指 topic_set_id) |
standard_score | float | 标准分/满分 |
status | str | 状态 |
exam_id | str | 关联的考试 ID |
create_user | Person | 创建人 |
create_time | float | 创建时间戳 |
教科书信息。
| 属性 | 类型 | 描述 |
|---|
code | str | 教科书编号 |
name | str | 教科书名称 |
version | str | 版本名称 (如 "人教版") |
versionCode | int | 版本编号 |
bindSubject | BasicSubject | 绑定的学科 |
| clazzs` | ExtendedList[StuClass] | 参考班级列表 |
| ` | | |
描述一场考试。
| 属性 | 类型 | 描述 |
|---|
id | str | 考试 ID |
name | str | 考试名称 |
status | str | 状态 |
grade_code | str | 年级代码 |
subjects | ExtendedList[Subject] | 考试包含的学科列表 |
schools | ExtendedList[School] | 参与学校列表 |
create_user | Person | 创建人 |
create_time | float | 创建时间 |
class_rank | int | 班级排名 |
grade_rank | int | 年级排名 |
academic_year | AcademicYear | 所属学年 |
is_final | bool | 是否为期末考试 |
描述一门学科的成绩详情。
| 属性 | 类型 | 描述 |
|---|
score | float | 分数 |
subject | Subject | 学科信息 |
person | StuPerson | 考生信息 |
class_rank | int | 班级排名 |
grade_rank | int | 年级排名 |
exam_rank | int | 联考/统考排名 |
继承自 ExtendedList[SubjectScore],表示一场考试的所有科目成绩集合。
| 属性 | 类型 | 描述 |
|---|
exam | Exam | 对应的考试 |
person | StuPerson | 对应的学生 |
| 属性 | 类型 | 描述 |
|---|
time | datetime | 批改时间 |
score | float | 得分 |
teacher_name | str | 阅卷老师姓名 |
| 属性 | 类型 | 描述 |
|---|
score | float | 得分 |
marking_records | ExtendedList[MarkingRecord] | 批改记录列表 |
| 属性 | 类型 | 描述 |
|---|
title | str | 题目名称 |
score | float | 得分 |
standard_score | float | 满分 |
subtopic_records | ExtendedList[SubTopicRecord] | 小题得分列表 |
继承自 ExtendedList[TopicRecord],表示整张试卷的答题详情。
| 属性 | 类型 | 描述 |
|---|
name | str | 类型名称 |
code | int | 类型代码 |
| 属性 | 类型 | 描述 |
|---|
id | str | 作业 ID |
title | str | 作业标题 |
type | HwType | 作业类型 |
begin_time | int | 开始时间戳 |
end_time | int | 结束时间戳 |
create_time | int | 创建时间戳 |
is_allow_makeup | bool | 是否允许重做 |
class_id | str | 班级 ID |
继承自 Homework,包含学生作业特有的信息。
| 属性 | 类型 | 描述 |
|---|
path | str | 资源路径 |
name | str | 资源名称 |
方法:
| 方法 | 参数 | 描述 |
|---|
download(path) | path: str | 下载资源到指定路径 |
| 属性 | 类型 | 描述 |
|---|
title | str | 题目标题 |
content | str | 答案内容 |
| 属性 | 类型 | 描述 |
|---|
analysis_html | str | 解析 HTML |
answer_html | str | 答案 HTML |
answer_type | str | 答题类型 |
is_correct | bool | 是否正确 |
class_score_rate | float | 班级得分率 |
content_html | str | 题目内容 HTML |
difficulty | int | 难度值 |
dis_title_number | str | 显示题号 |
paper_id | str | 试卷 ID |
subject_name | str | 学科名称 |
score | float | 得分 |
standard_answer | str | 标准答案 |
standard_score | float | 满分 |
topic_set_id | str | 题目集 ID |
topic_img_url | str | 题目图片 URL |
topic_source_paper_name | str | 题目来源试卷名称 |
image_answer | List[str] | 学生答案图片 |
topic_analysis_img_url | str | 题目解析图片 URL |
| 属性 | 类型 | 描述 |
|---|
code | str | 学段代码 |
name | str | 学段名称 |
| 属性 | 类型 | 描述 |
|---|
code | str | 地区代码 |
name | str | 地区名称 |
level | Optional[str] | 层级 |
id | str | 地区 ID |
| 属性 | 类型 | 描述 |
|---|
phase | Phase | 学段 |
subjects | List[BasicSubject] | 学科列表 |
grades | List[Grade] | 年级列表 |
| 属性 | 类型 | 描述 |
|---|
topic_number | str | 题号 |
complete_rate | float | 完成率 |
complete_count | int | 已完成数量 |
all_count | int | 总数量 |
| 属性 | 类型 | 描述 |
|---|
exams | List[Exam] | 考试列表 |
page_index | int | 当前页码 |
page_size | int | 每页大小 |
all_pages | int | 总页数 |
has_next_page | bool | 是否有下一页 |
| 属性 | 类型 | 描述 |
|---|
term_id | str | 学期 ID |
circles_year | str | 学年 |
teaching_cycle_id | str | 教学周期 ID |
begin_time | int | 开始时间(毫秒时间戳) |
end_time | int | 结束时间(毫秒时间戳) |
school_id | str | 学校 ID |
| 属性 | 类型 | 描述 |
|---|
score | float | 给分 |
marking_time | int | 批改时间(毫秒时间戳) |
teacher_name | str | 批改教师姓名 |
teacher_id | str | 批改教师 ID |
role | str | 批改角色 |
is_excellent | bool | 是否优秀 |
is_typical_error | bool | 是否典型错误 |
marking_content | str | 批改内容(JSON字符串) |
| 属性 | 类型 | 描述 |
|---|
score | float | 得分 |
sub_topic_index | int | 小题索引 |
score_source | str | 得分来源 |
teacher_marking_records | List[TeacherMarkingRecord] | 教师批改记录 |
| 属性 | 类型 | 描述 |
|---|
topic_number | int | 题号 |
disp_title | str | 显示题号 |
answer | str | 学生答案(文本) |
score | float | 得分 |
standard_score | float | 满分 |
is_correct | bool | 是否正确 |
answer_type | str | 答题类型(s01Text/s02Image等) |
source_category_name | str | 题型名称 |
topic_type_id | str | 题型 ID |
sub_topics | List[SubTopicDetail] | 小题列表(主观题) |
is_excellent | bool | 是否优秀 |
is_typical_error | bool | 是否典型错误 |
marking_paper_topic_id | str | 批改试卷题目 ID |
| 属性 | 类型 | 描述 |
|---|
user_id | str | 学生 ID |
topic_set_id | str | 科目 ID |
total_score | float | 总分 |
answer_details | List[AnswerRecordDetail] | 答题详情列表 |
answer_sheet_images | List[str] | 答题卡图片 URL 列表 |
属性(计算):
| 属性 | 类型 | 描述 |
|---|
objective_questions | List[AnswerRecordDetail] | 客观题列表 |
subjective_questions | List[AnswerRecordDetail] | 主观题列表 |
total_objective_score | float | 客观题总分 |
total_subjective_score | float | 主观题总分 |
| 属性 | 类型 | 描述 |
|---|
user_id | str | 用户 ID |
user_name | str | 用户名 |
role | str | 角色 |
school_id | str | 学校 ID |
area_id | str | 区域 ID |
city_id | str | 城市 ID |
country_id | str | 国家 ID |
province_id | str | 省份 ID |
| 属性 | 类型 | 描述 |
|---|
id | int | 消息 ID |
content | str | 消息内容 |
create_time | int | 创建时间(毫秒时间戳) |
update_time | int | 更新时间(毫秒时间戳) |
send_user_id | str | 发送者用户 ID |
sender | MessageUser | 发送者信息 |
notify_id | int | 通知 ID |
subscriber | str | 订阅者 ID |
subscriber_name | str | 订阅者名称 |
subscriber_role | str | 订阅者角色 |
is_delete | bool | 是否删除 |
is_top | bool | 是否置顶 |
view_count | int | 查看次数 |
like_count | int | 点赞数 |
comment_count | int | 评论数 |
方法:
| 方法 | 返回类型 | 描述 |
|---|
get_create_datetime() | datetime | 获取创建时间的 datetime 对象 |
get_update_datetime() | datetime | 获取更新时间的 datetime 对象 |
| 属性 | 类型 | 描述 |
|---|
current_page | int | 当前页 |
page_size | int | 每页大小 |
total_count | int | 总数 |
total_page | int | 总页数 |
first_page | int | 首页 |
last_page | int | 末页 |
next_page | int | 下一页 |
prev_page | int | 上一页 |
all_pages | List[int] | 所有页码列表 |
| 属性 | 类型 | 描述 |
|---|
messages | ExtendedList[PersonalMessage] | 消息列表 |
page_info | MessagePageInfo | 分页信息 |
total_count | int | 总数 |
方法:
| 方法 | 返回类型 | 描述 |
|---|
get_unread_messages() | ExtendedList[PersonalMessage] | 获取未读消息列表 |
get_messages_by_sender(sender_id) | ExtendedList[PersonalMessage] | 获取指定发送者的消息列表 |
subject_name | str | 学科名称 |
继承自 List[T],提供便捷的查询方法。
| 方法 | 返回类型 | 描述 |
|---|
foreach(f) | None | 对列表中每个元素执行函数 f |
find(f) | T 或 None | 返回满足条件 f 的第一个元素 |
find_all(f) | ExtendedList[T] | 返回满足条件 f 的所有元素 |
find_by_name(name) | T 或 None | 返回名称为 name 的第一个元素 |
find_all_by_name(name) | ExtendedList[T] | 返回名称为 name 的所有元素 |
find_by_id(spec_id) | T 或 None | 返回 ID 为 spec_id 的第一个元素 |
find_all_by_id(spec_id) | ExtendedList[T] | 返回 ID 为 spec_id 的所有元素 |