学生管理系统代码
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# 导入Pydantic组件,用于参数校验和响应字段过滤
|
||||
from pydantic import BaseModel, Field
|
||||
from datetime import date
|
||||
from typing import Optional # Optional可选字段: (...)必填字段,没有default可以省略。
|
||||
|
||||
|
||||
#=============== 新增老师:请求体模型 ===============
|
||||
#接收前端post新增数据,提前自动校验
|
||||
class TeacherCreate(BaseModel):
|
||||
t_name : str = Field(...,min_length=1,max_length=20,description="老师姓名") # 老师姓名:必填,字符串,长度1-20.
|
||||
phone : str = Field(...,max_length=11,description="手机号") # 老师手机号:必填,字符串,最长11位
|
||||
subject : Optional[str] = Field(default="班主任",description="教学科目") # 老师教的科目,可选,不填默认为班主任
|
||||
entry_time : Optional[date] = Field(None,description="入职时间") # 老师入职时间,可选,不填为空
|
||||
|
||||
|
||||
#=============== 更新老师:请求体模型 ===============
|
||||
# 所有字端都是可选,只更新前段传来的字段,没传的保持不变
|
||||
class TeacherUpdate(BaseModel):
|
||||
t_name : Optional[str] = None
|
||||
phone : Optional[str] = None
|
||||
subject : Optional[str] = None
|
||||
entry_time : Optional[date] = None
|
||||
|
||||
|
||||
#=============== 响应模型:返回给前端的数据结构 ===============
|
||||
# 过滤字段,只返回公开信息,隐藏隐私信息
|
||||
class TeacherOut(BaseModel):
|
||||
tid: int
|
||||
t_name: str
|
||||
phone: str
|
||||
subject: Optional[str] # 可以为空None,防止报500
|
||||
|
||||
# SQLAlchemy查出来是orm对象,转化为Pydantic可以识别的对象(字典)
|
||||
class Config:
|
||||
from_attributes = True
|
||||
Reference in New Issue
Block a user