# students_schema:请求、响应的模型框架 from pydantic import BaseModel , Field from datetime import datetime import enum class SexEnum(str , enum.Enum): m = '男' f = '女' # 查询 class StudentsQuery(BaseModel): id:int | None = None num:str | None = None name:str | None = None age:int | None = None sex:SexEnum | None = None home_Place:str | None = None college:str | None = None specialty:str | None = None enrollment_time:datetime | None = None graduate_time:datetime | None = None education:str | None = None # 外键字段 class_id:int | None = None advisor_id:int | None = None # 额外字段 phone:str | None = None class EducationEnum(str , enum.Enum): z = '专科' ben = '本科' s = '硕士' bo = '博士' # 新建 class StudentsResponse(BaseModel): num:str = Field(..., min_length=1, max_length=50, description='学生编号' ) name:str = Field(..., min_length=1, max_length=50, description='学生姓名' ) age:int = Field(..., gt=0, lt=200, description='学生年龄') sex:SexEnum home_Place:str | None = None college:str | None = None specialty:str | None = None enrollment_time:datetime | None = None graduate_time:datetime | None = None education:EducationEnum # 外键字段 class_id:int = Field(..., gt=0, description='班级ID') advisor_id:int | None = None # 额外字段 phone:str = Field(...,min_length=11,max_length=11,description='学生手机号') # 更新 class StudentsUpdate(BaseModel): id:int = Field(..., gt=0 , description='学生ID' ) num:str | None = None name:str | None = None age:int | None = None sex:SexEnum | None = None home_Place:str | None = None college:str | None = None specialty:str | None = None enrollment_time:datetime | None = None graduate_time:datetime | None = None education:str | None = None # 外键字段 class_id:int | None = None advisor_id:int | None = None # 额外字段 phone:str | None = None # 删除 class StudentsDelete(BaseModel): id:int | None = None num:str | None = None name:str | None = None age:int | None = None sex:SexEnum | None = None home_Place:str | None = None college:str | None = None specialty:str | None = None enrollment_time:datetime | None = None graduate_time:datetime | None = None education:str | None = None # 外键字段 class_id:int | None = None advisor_id:int | None = None # 额外字段 phone:str | None = None