Files
1/scheme/wl_score_scheme.py
T

63 lines
1.6 KiB
Python
Raw Normal View History

2026-09-14 10:23:36 +08:00
from pydantic import BaseModel, ConfigDict
from datetime import date
from typing import Optional, List
# ----------------学生----------------
class StudentCreate(BaseModel):
stu_name: str
native_place: Optional[str] = None
graduate_school: Optional[str] = None
major: Optional[str] = None
in_time: Optional[date] = None
out_time: Optional[date] = None
edu: Optional[str] = None
advisor_id: Optional[int] = None
stu_age: Optional[int] = None
stu_gender: Optional[str] = None
class StudentResp(StudentCreate):
stu_id: int
class Config:
from_attributes = True
# ----------------成绩----------------
class ScoreCreate(BaseModel):
2026-09-14 10:23:36 +08:00
stu_no: str
exam_order: int
score: float
class ScoreResp(ScoreCreate):
class Config:
from_attributes = True
2026-09-14 10:23:36 +08:00
# 对外出参:成绩表现在直接用学号做主键,stu_no 就是表里的真实字段,
# 查到 ORM 对象直接读出来即可,不需要额外挂展示字段。
class ScoreOut(BaseModel):
stu_no: str
exam_order: int
score: float
model_config = ConfigDict(from_attributes=True)
# ----------------班级----------------
class ClassCreate(BaseModel):
start_time: Optional[date] = None
class ClassResp(ClassCreate):
class_id: int
class Config:
from_attributes = True
# ----------------老师----------------
class TeacherCreate(BaseModel):
t_name: str
t_gender: Optional[str] = None
t_email: Optional[str] = None
class_id: Optional[int] = None
role: Optional[str] = None
class TeacherResp(TeacherCreate):
t_id: int
class Config:
from_attributes = True