From b9134b6ef1b39ee3cbf33b1d796d8a5f16ed945a Mon Sep 17 00:00:00 2001 From: geyuan <2732801331@qq.com> Date: Mon, 21 Sep 2026 19:36:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E6=8E=89=E4=B8=80=E4=BA=9B=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/dataSources.xml | 12 ++++++++++++ Teachers/api/tea_api.py | 20 ++++++++++---------- Teachers/dao/tea_dao.py | 22 +++++++++++----------- Teachers/model/tea_model.py | 4 ++-- Teachers/schema/tea_request.py | 10 +++++++++- Teachers/schema/tea_response.py | 3 ++- 6 files changed, 46 insertions(+), 25 deletions(-) create mode 100644 .idea/dataSources.xml diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..ba3e0d2 --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,12 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306 + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/Teachers/api/tea_api.py b/Teachers/api/tea_api.py index 450bcde..3613f6b 100644 --- a/Teachers/api/tea_api.py +++ b/Teachers/api/tea_api.py @@ -3,32 +3,32 @@ from Teachers.schema import * from Teachers.database import * from Teachers.model.tea_model import * from Teachers.dao.tea_dao import * -from Teachers.schema.tea_request import TeaRequest +from Teachers.schema.tea_request import TeaRequest,NewTeaRequest from Teachers.schema.tea_response import TeaResponse tea_api = APIRouter(tags=['老师相关接口']) -@tea_api.post('/tea',response_model=TeaResponse) +@tea_api.post('/tea',response_model=TeaResponse,summary='新增老师',description='输入新增的老师信息,除去姓名外可以为空') def add_tea(tea: TeaRequest,db=Depends(get_db)): r = add_tea_dao(tea.model_dump(),db) if not r: raise HTTPException(status_code=500,detail='添加失败!') - return TeaResponse(totals=1,date=tea.model_dump()) -@tea_api.get('/tea',response_model=TeaResponse) -def get_tea(t:TeaRequest,db=Depends(get_db)): #开启会话窗口 - r = get_tea_dao(t,db=db) + return TeaResponse(totals=1,data=tea.model_dump()) +@tea_api.get('/tea',response_model=TeaResponse,summary='查询老师',description='任意选择输入的信息数量,不输入则查询全部老师') +def get_tea(t:TeaRequest=Depends(),db=Depends(get_db)): #开启会话窗口 + r = get_tea_dao(t.model_dump(),db=db) if not r: raise HTTPException(status_code=404,detail='老师不存在') - return TeaResponse(totals=len(r),date=r) -@tea_api.delete('tea/{id}') + return TeaResponse(totals=len(r), data=r) +@tea_api.delete('/tea/{id}',summary='删除老师',description='输入删除的老师id') def delete_tea(id:int|None,db=Depends(get_db)): r = delete_tea_dao(id,db) if not r: raise HTTPException(status_code=500,detail='删除失败!') return {'detail':'删除成功!'} -@tea_api.put('tea/{id}') -def update_tea(id:int,tea:TeaRequest,db=Depends(get_db)): +@tea_api.put('/tea/{id}',summary='修改老师信息',description='输入更改的信息,老师的姓名和性别不能为空,其余可以为空') +def update_tea(id:int,tea:NewTeaRequest,db=Depends(get_db)): t = tea.model_dump(exclude_unset= True) r = update_tea_dao(id=id,update_data=t,db=db) if not r: diff --git a/Teachers/dao/tea_dao.py b/Teachers/dao/tea_dao.py index 20a63a0..91d4d97 100644 --- a/Teachers/dao/tea_dao.py +++ b/Teachers/dao/tea_dao.py @@ -28,16 +28,16 @@ def update_tea_dao(id,update_data,db): #查询 def get_tea_dao(t,db): query = db.query(Tea).filter(Tea.is_delete == False) - if t.tea_id: - query = query.filter(Tea.tea_id == t.tea_id) - if t.tea_name: - query = query.filter(Tea.tea_name == t.tea_name) - if t.tea_sex: - query = query.filter(Tea.tea_sex == t.tea_sex) - if t.claa_id: - query = query.filter(Tea.class_id == t.claa_id) - if t.class_sub: - query = query.filter(Tea.class_sub == t.class_sub) + if t.get('tea_id'): + query = query.filter(Tea.tea_id == t.get('tea_id') ) + if t.get('tea_name'): + query = query.filter(Tea.tea_name == t.get('tea_name') ) + if t.get("tea_sex"): + query = query.filter(Tea.tea_sex == t.get('tea_sex') ) + if t.get('class_id'): + query = query.filter(Tea.class_id == t.get('claa_id') ) + if t.get('class_sub'): + query = query.filter(Tea.class_sub == t.get('class_sub') ) r = query.all() return [{'tea_id':i.tea_id,'tea_name':i.tea_name,'class_id':i.class_id,'class_sub':i.class_sub,'tea.sex':i.tea_sex} for i in r] @@ -50,7 +50,7 @@ def delete_tea_dao(id,db): except: db.rollback() row = 0 - return row + return else: db.commit() return row diff --git a/Teachers/model/tea_model.py b/Teachers/model/tea_model.py index dd37b1f..6e956ef 100644 --- a/Teachers/model/tea_model.py +++ b/Teachers/model/tea_model.py @@ -8,7 +8,7 @@ class Gender(str,enum.Enum): f = '女' class Tea(Base): - __tablename__ = 'order_info_tea' + __tablename__ = 'teachers_info' tea_id = Column(Integer , primary_key=True ,nullable=False @@ -17,7 +17,7 @@ class Tea(Base): tea_name = Column(String(50) ,nullable=False ,comment='老师姓名') - tea_sex = Column(Enum (Gender),default='未知' + tea_sex = Column(Enum(Gender),default='未知' ,comment='老师性别') class_id = Column(Integer ,nullable=False diff --git a/Teachers/schema/tea_request.py b/Teachers/schema/tea_request.py index 0797917..d89847c 100644 --- a/Teachers/schema/tea_request.py +++ b/Teachers/schema/tea_request.py @@ -1,10 +1,18 @@ from pydantic import BaseModel from Teachers.model.tea_model import * + +#查询使用请求体 class TeaRequest(BaseModel): - class_id: int|None = None tea_id: int|None = None tea_name: str|None = None tea_sex: Gender|None = None + class_id: int | None = None class_sub: str|None = None +#更新、新增使用请求体(无法覆盖) +class NewTeaRequest(BaseModel): + tea_name: str + tea_sex: Gender + class_id: int | None + class_sub: str|None diff --git a/Teachers/schema/tea_response.py b/Teachers/schema/tea_response.py index 88437d0..ee7f554 100644 --- a/Teachers/schema/tea_response.py +++ b/Teachers/schema/tea_response.py @@ -1,7 +1,8 @@ from pydantic import BaseModel + class TeaResponse(BaseModel): code: int = 200 detail: str = 'OK' totals:int = 0 - date: str |dict|tuple|list + data: str |dict|tuple|list