Files
student_manage_system/students/schema/students_request.py
T

93 lines
2.6 KiB
Python

# students_schema:请求、响应的模型框架
from pydantic import BaseModel , Field
from datetime import datetime
import enum
class SexEnum(str , enum.Enum):
m = '男'
f = '女'
class EducationEnum(str , enum.Enum):
z = '专科'
ben = '本科'
s = '硕士'
bo = '博士'
# 查询
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:EducationEnum | None = None
# 外键字段
class_id:int | None = None
advisor_id:int | None = None
# 额外字段
phone:str | None = None
# 新建
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 = Field(..., gt=0, description='班级ID')
# 额外字段
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:EducationEnum | 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:EducationEnum | None = None
# 外键字段
class_id:int | None = None
advisor_id:int | None = None
# 额外字段
phone:str | None = None