From cebdb127e6c5c3b19b7eb22391fcbcfd14e707a1 Mon Sep 17 00:00:00 2001 From: wolin_ck666_999 Date: Tue, 22 Sep 2026 21:36:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=E3=80=8Cschema=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- schema/class_schema.py | 22 +++++++++++++++ schema/epy_schema.py | 13 +++++++++ schema/sc_schema.py | 5 ++++ schema/stu_schema.py | 62 ++++++++++++++++++++++++++++++++++++++++++ schema/th_schema.py | 17 ++++++++++++ 5 files changed, 119 insertions(+) create mode 100644 schema/class_schema.py create mode 100644 schema/epy_schema.py create mode 100644 schema/sc_schema.py create mode 100644 schema/stu_schema.py create mode 100644 schema/th_schema.py diff --git a/schema/class_schema.py b/schema/class_schema.py new file mode 100644 index 0000000..748388e --- /dev/null +++ b/schema/class_schema.py @@ -0,0 +1,22 @@ +from pydantic import BaseModel,Field,ConfigDict +from datetime import datetime +class ClassRequest(BaseModel): #定义更新班级信息的请求体 + class_id: str = Field(...,) + class_name: str = Field(...,) + ht_id: int = Field(...) + t_id: int = Field(...) + start_time: datetime = Field(...) + model_config = ConfigDict(from_attributes=True) +class ClassCreate(ClassRequest): + pass +class ClassUpdate(ClassRequest): + pass +class ClassResponse(BaseModel): #定义响应体 + code:int = 200 + detail:str ='OK' + totals:int = 0 + data:ClassRequest | None = None #原来的写法str | dict | list | tuple 这几种类型里, + #一个都匹配不上路由里传的ORM对象result(Class类的实例),所以报错500 + + + diff --git a/schema/epy_schema.py b/schema/epy_schema.py new file mode 100644 index 0000000..f0f122b --- /dev/null +++ b/schema/epy_schema.py @@ -0,0 +1,13 @@ +from pydantic import BaseModel +from typing import Optional + +class EmploymentRequest(BaseModel): + stu_id: str|None = None + class_name: str|None = None + company: Optional[str] = None + salary: Optional[int] = None + + + + + diff --git a/schema/sc_schema.py b/schema/sc_schema.py new file mode 100644 index 0000000..f1b810f --- /dev/null +++ b/schema/sc_schema.py @@ -0,0 +1,5 @@ +from pydantic import BaseModel +class Test(BaseModel): + stu_id:int + exam_seq:int + score:float diff --git a/schema/stu_schema.py b/schema/stu_schema.py new file mode 100644 index 0000000..33f703b --- /dev/null +++ b/schema/stu_schema.py @@ -0,0 +1,62 @@ +from typing import Optional,List +from pydantic import BaseModel,Field +from datetime import date +from model.stu_model import Sex +##=====================请求体=============== +class StudentCreateRequest(BaseModel): + stu_id:str=Field(...,description="学生id") + class_id:Optional[str]=Field(None,description="学生班级id") + stu_name: str = Field(..., description="学生姓名") + native_place: Optional[str] = Field(None, description="籍贯") + graduate_school: Optional[str] = Field(None, description="毕业院校") + major: Optional[str] = Field(None, description="专业") + enroll_date: Optional[date] = Field(None, description="入学时间") + graduate_date: Optional[date] = Field(None, description="毕业时间") + education: Optional[str] = Field(None, description="学历") + advisor_no: Optional[str] = Field(None, description="顾问编号") + age: Optional[int] = Field(None, ge=0, description="年龄,不能负数") + gender: Optional[Sex] = Field(None, description="性别") +class StudentUpdateRequest(BaseModel): + stu_id:Optional[str]=None#学生id + class_id: Optional[str] = None # 学生班级 + stu_name: Optional[str] = None # 学生姓名 + native_place: Optional[str] = None # 籍贯 + graduate_school: Optional[str] = None # 毕业院校 + major: Optional[str] = None # 专业 + enroll_date: Optional[date] = None # 入学时间 + graduate_date: Optional[date] = None # 毕业时间 + education: Optional[str] = None # 学历 + advisor_no: Optional[str] = None # 顾问编号 + age: Optional[int] = Field(None, ge=0) # 年龄,不能负数 + gender: Optional[Sex] = Field(None, description="性别") # 性别''' +class StudentQuery(BaseModel): + stu_id: Optional[str] = None # 学生编号筛选 + stu_name: Optional[str] = None # 学生姓名筛选 + class_id: Optional[str] = None # 班级筛选 + page: int = Field(1, ge=1, description="页码,默认第1页") + page_size: int = Field(10, ge=1, le=100, description="每页条数,默认10条") +##=====================响应体=============== +class StudentResponse(BaseModel): + id: int + stu_id: str + class_id: Optional[str] + stu_name: str + native_place: Optional[str] + graduate_school: Optional[str] + major: Optional[str] + enroll_date: Optional[date] + graduate_date: Optional[date] + education: Optional[str] + advisor_no: Optional[str] + age: Optional[int] + gender: Optional[Sex] = Field(None, description="性别") + is_deleted: bool + + class Config: + from_attributes = True + +class StudentPageResponse(BaseModel): + total: int# 符合条件的总记录数 + page: int# 当前页码 + page_size: int# 每页数据条数 + items: List[StudentResponse] # 当前页学生数据列表 \ No newline at end of file diff --git a/schema/th_schema.py b/schema/th_schema.py new file mode 100644 index 0000000..319194f --- /dev/null +++ b/schema/th_schema.py @@ -0,0 +1,17 @@ +from pydantic import BaseModel,Field +from model.th_model import Sex + + +class RequestModel(BaseModel): + t_id : int + t_name: str=Field(min_length=2,max_length=20) + t_sex:Sex + t_age: int=Field(gt=0,description='年龄大于0') + t_phone: str=Field(min_length=11,description='电话号码') + class_id: str + +class ResponseModel(BaseModel): + code: int = 200 + msg: str = '操作成功' + total: int = 0 + data: list=Field(default=[])