From b1081d37a9c0b3bebcb9d4ac8fd60c871942f69d Mon Sep 17 00:00:00 2001 From: geyuan <2732801331@qq.com> Date: Sat, 19 Sep 2026 18:14:22 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 10 ++++++++++ .idea/inspectionProfiles/Project_Default.xml | 12 ++++++++++++ .idea/inspectionProfiles/profiles_settings.xml | 6 ++++++ .idea/learn_20260919_dome.iml | 12 ++++++++++++ .idea/misc.xml | 4 ++++ .idea/modules.xml | 8 ++++++++ .idea/student_manage_system.iml | 8 ++++++++ .idea/vcs.xml | 6 ++++++ api/__init__.py | 0 dao/__init__.py | 0 model/__init__.py | 0 schema/__init__.py | 0 12 files changed, 66 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/learn_20260919_dome.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/student_manage_system.iml create mode 100644 .idea/vcs.xml create mode 100644 api/__init__.py create mode 100644 dao/__init__.py create mode 100644 model/__init__.py create mode 100644 schema/__init__.py diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b6b1ecf --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 已忽略包含查询文件的默认文件夹 +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..d81046c --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/learn_20260919_dome.iml b/.idea/learn_20260919_dome.iml new file mode 100644 index 0000000..ea1b721 --- /dev/null +++ b/.idea/learn_20260919_dome.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..dc9ea49 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..ad5a223 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/student_manage_system.iml b/.idea/student_manage_system.iml new file mode 100644 index 0000000..8437fe6 --- /dev/null +++ b/.idea/student_manage_system.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/api/__init__.py b/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dao/__init__.py b/dao/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/model/__init__.py b/model/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/schema/__init__.py b/schema/__init__.py new file mode 100644 index 0000000..e69de29 From 7fc2dedee64defb2709a43a1c4cc975e04e1339b Mon Sep 17 00:00:00 2001 From: geyuan <2732801331@qq.com> Date: Mon, 21 Sep 2026 11:30:04 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E8=80=81=E5=B8=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 3 +++ api/__init__.py | 0 dao/__init__.py | 0 model/__init__.py | 0 schema/__init__.py | 0 5 files changed, 3 insertions(+) delete mode 100644 api/__init__.py delete mode 100644 dao/__init__.py delete mode 100644 model/__init__.py delete mode 100644 schema/__init__.py diff --git a/.idea/misc.xml b/.idea/misc.xml index dc9ea49..930139e 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,7 @@ + + \ No newline at end of file diff --git a/api/__init__.py b/api/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/dao/__init__.py b/dao/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/model/__init__.py b/model/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/schema/__init__.py b/schema/__init__.py deleted file mode 100644 index e69de29..0000000 From 12fb6a7e833e3eb94f19599c5e5f9f3aa72bd745 Mon Sep 17 00:00:00 2001 From: geyuan <2732801331@qq.com> Date: Mon, 21 Sep 2026 16:28:55 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E8=80=81=E5=B8=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Teachers/api/__init__.py | 0 Teachers/api/tea_api.py | 36 ++++++++++++++++++++++ Teachers/dao/__init__.py | 0 Teachers/dao/tea_dao.py | 53 +++++++++++++++++++++++++++++++++ Teachers/database.py | 17 +++++++++++ Teachers/main.py | 16 ++++++++++ Teachers/model/__init__.py | 0 Teachers/model/tea_model.py | 39 ++++++++++++++++++++++++ Teachers/schema/__init__.py | 0 Teachers/schema/tea_request.py | 10 +++++++ Teachers/schema/tea_response.py | 7 +++++ 11 files changed, 178 insertions(+) create mode 100644 Teachers/api/__init__.py create mode 100644 Teachers/api/tea_api.py create mode 100644 Teachers/dao/__init__.py create mode 100644 Teachers/dao/tea_dao.py create mode 100644 Teachers/database.py create mode 100644 Teachers/main.py create mode 100644 Teachers/model/__init__.py create mode 100644 Teachers/model/tea_model.py create mode 100644 Teachers/schema/__init__.py create mode 100644 Teachers/schema/tea_request.py create mode 100644 Teachers/schema/tea_response.py diff --git a/Teachers/api/__init__.py b/Teachers/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Teachers/api/tea_api.py b/Teachers/api/tea_api.py new file mode 100644 index 0000000..450bcde --- /dev/null +++ b/Teachers/api/tea_api.py @@ -0,0 +1,36 @@ +from fastapi import APIRouter,Depends,HTTPException +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_response import TeaResponse + +tea_api = APIRouter(tags=['老师相关接口']) + +@tea_api.post('/tea',response_model=TeaResponse) +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) + if not r: + raise HTTPException(status_code=404,detail='老师不存在') + return TeaResponse(totals=len(r),date=r) +@tea_api.delete('tea/{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)): + t = tea.model_dump(exclude_unset= True) + r = update_tea_dao(id=id,update_data=t,db=db) + if not r: + raise HTTPException(status_code=404,detail='老师不存在') + return {'detail':'修改成功'} diff --git a/Teachers/dao/__init__.py b/Teachers/dao/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Teachers/dao/tea_dao.py b/Teachers/dao/tea_dao.py new file mode 100644 index 0000000..6015b03 --- /dev/null +++ b/Teachers/dao/tea_dao.py @@ -0,0 +1,53 @@ +from Teachers.model.tea_model import Tea + +#增加 +def add_tea_dao(t,db): + try: + t1 = Tea(**t) + db.add(t1) + except: + db.rollback() + return False + else: + db.commit() + return True + +#更新 +def update_tea_dao(id,update_data,db): + try: + rows = db.query(Tea).filter(Tea.tea_id == id,Tea.is_delete == False)(update_data) + except: + db.rollback() + return False + else: + db.commit() + return rows + +#查询 +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) + 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] + +#删除 +def delete_tea_dao(id,db): + try: + row = db.query(Tea).filter(Tea.tea_id == id).delete() + except: + db.rollback() + row = 0 + else: + db.commit() + return row + + diff --git a/Teachers/database.py b/Teachers/database.py new file mode 100644 index 0000000..84a5fe0 --- /dev/null +++ b/Teachers/database.py @@ -0,0 +1,17 @@ +from sqlalchemy import * +from sqlalchemy.orm import sessionmaker,declarative_base + +db_tea = 'mysql+pymysql://root:123456@127.0.0.1:3306/ai0824?charset=utf8mb4' +engine1 = create_engine(db_tea) + +Base = declarative_base() +Session = sessionmaker(bind=engine1 + ,autoflush = False + ,autocommit = False) +def get_db(): + db = Session() + try: + yield db + finally: + db.close() +Base.metadata.create_all(engine1) \ No newline at end of file diff --git a/Teachers/main.py b/Teachers/main.py new file mode 100644 index 0000000..1ec14a3 --- /dev/null +++ b/Teachers/main.py @@ -0,0 +1,16 @@ +from fastapi import FastAPI +from Teachers.model.tea_model import * +from api.tea_api import tea_api +app = FastAPI() +app.include_router(tea_api) + +Base.metadata.create_all(engine1) + +if __name__ == "__main__": + import uvicorn + uvicorn.run('main:app', host='0.0.0.0', port=55000) + """ + IPv4 地址 . . . . . . . . . . . . : 192.168.1.51 + 子网掩码 . . . . . . . . . . . . : 255.255.255.0 + 默认网关. . . . . . . . . . . . . : 192.168.1.1 + """ \ No newline at end of file diff --git a/Teachers/model/__init__.py b/Teachers/model/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Teachers/model/tea_model.py b/Teachers/model/tea_model.py new file mode 100644 index 0000000..93a5c02 --- /dev/null +++ b/Teachers/model/tea_model.py @@ -0,0 +1,39 @@ +from Teachers.database import * +from datetime import datetime +from sqlalchemy import * +import enum + +class Gender(str,enum.Enum): + m = '男' + f = '女' + +class Tea(Base): + __tablename__ = 'order_info_tea' + tea_id = Column(Integer + , primary_key=True + ,nullable=False + ,autoincrement=True + ,comment='老师id') + tea_name = Column(String(50) + ,nullable=False + ,comment='老师姓名') + tea_sex = Column(Enum (Gender),default='未知' + ,comment='老师性别') + class_id = Column(Integer + ,nullable=False + ,comment='班级id') + class_sub = Column(String(50) + ,nullable=False + ,comment='教学科目') + create_date = Column(DateTime + ,default=datetime.now + ,comment='创建时间') + update_date = Column(DateTime + ,onupdate=datetime.now + ,comment='更新时间') + delete_data = Column(DateTime + ,onupdate=datetime.now + ,comment='删除时间') + is_delete = Column(Integer,default=False,comment='是否删除') + + diff --git a/Teachers/schema/__init__.py b/Teachers/schema/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Teachers/schema/tea_request.py b/Teachers/schema/tea_request.py new file mode 100644 index 0000000..0797917 --- /dev/null +++ b/Teachers/schema/tea_request.py @@ -0,0 +1,10 @@ +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_sub: str|None = None + + diff --git a/Teachers/schema/tea_response.py b/Teachers/schema/tea_response.py new file mode 100644 index 0000000..88437d0 --- /dev/null +++ b/Teachers/schema/tea_response.py @@ -0,0 +1,7 @@ +from pydantic import BaseModel +class TeaResponse(BaseModel): + code: int = 200 + detail: str = 'OK' + totals:int = 0 + date: str |dict|tuple|list + From b28430257cc0a93b5ca68a94eeaf40408afdaed3 Mon Sep 17 00:00:00 2001 From: geyuan <2732801331@qq.com> Date: Mon, 21 Sep 2026 16:53:08 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Teachers/dao/tea_dao.py | 9 +++++++-- Teachers/model/tea_model.py | 4 +--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Teachers/dao/tea_dao.py b/Teachers/dao/tea_dao.py index 6015b03..20a63a0 100644 --- a/Teachers/dao/tea_dao.py +++ b/Teachers/dao/tea_dao.py @@ -1,4 +1,5 @@ from Teachers.model.tea_model import Tea +from datetime import datetime #增加 def add_tea_dao(t,db): @@ -15,7 +16,8 @@ def add_tea_dao(t,db): #更新 def update_tea_dao(id,update_data,db): try: - rows = db.query(Tea).filter(Tea.tea_id == id,Tea.is_delete == False)(update_data) + rows = db.query(Tea).filter(Tea.tea_id == id + ,Tea.is_delete == False).update(update_data) except: db.rollback() return False @@ -42,10 +44,13 @@ def get_tea_dao(t,db): #删除 def delete_tea_dao(id,db): try: - row = db.query(Tea).filter(Tea.tea_id == id).delete() + row = db.query(Tea).filter(Tea.tea_id == id + ,Tea.is_delete == False + ).update({'is_delete':True,'delete_time':datetime.now()}) except: db.rollback() row = 0 + return row else: db.commit() return row diff --git a/Teachers/model/tea_model.py b/Teachers/model/tea_model.py index 93a5c02..dd37b1f 100644 --- a/Teachers/model/tea_model.py +++ b/Teachers/model/tea_model.py @@ -31,9 +31,7 @@ class Tea(Base): update_date = Column(DateTime ,onupdate=datetime.now ,comment='更新时间') - delete_data = Column(DateTime - ,onupdate=datetime.now - ,comment='删除时间') is_delete = Column(Integer,default=False,comment='是否删除') + delete_time = Column(DateTime) 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 5/7] =?UTF-8?q?=E6=94=B9=E6=8E=89=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E6=8A=A5=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 From c996fe00f058d7e782242276a7b51a8a3efeb9a0 Mon Sep 17 00:00:00 2001 From: geyuan <2732801331@qq.com> Date: Mon, 21 Sep 2026 21:48:36 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E5=A2=9E=E6=94=B9=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Teachers/dao/tea_dao.py | 35 +++++++++++++++++++++++----------- Teachers/database.py | 2 +- Teachers/model/tea_model.py | 27 ++++++++++++++++++-------- Teachers/schema/tea_request.py | 29 ++++++++++++++++++++-------- 4 files changed, 65 insertions(+), 28 deletions(-) diff --git a/Teachers/dao/tea_dao.py b/Teachers/dao/tea_dao.py index 91d4d97..9b39829 100644 --- a/Teachers/dao/tea_dao.py +++ b/Teachers/dao/tea_dao.py @@ -16,7 +16,7 @@ def add_tea_dao(t,db): #更新 def update_tea_dao(id,update_data,db): try: - rows = db.query(Tea).filter(Tea.tea_id == id + rows = db.query(Tea).filter(Tea.id == id ,Tea.is_delete == False).update(update_data) except: db.rollback() @@ -28,23 +28,36 @@ 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.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('id'): + query = query.filter(Tea.id == t.get('id') ) + if t.get('name'): + query = query.filter(Tea.name == t.get('name') ) + if t.get("sex"): + query = query.filter(Tea.sex == t.get('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') ) + if t.get('sub'): + query = query.filter(Tea.sub == t.get('sub') ) + if t.get('home_place'): + query = query.filter(Tea.home_place == t.get('home_place') ) + if t.get('specialty'): + query = query.filter(Tea.specialty == t.get('specialty') ) + if t.get('start_time'): + query = query.filter(Tea.start_time == t.get('start_time') ) + if t. get('work_experience'): + query = query.filter(Tea.work_experience == t.get('work_experience') ) + if t.get('education'): + query = query.filter(Tea.education == t.get('education') ) + if t.get('college'): + query = query.filter(Tea.collage == t.get('college') ) 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] + return [{'id':i.id,'name':i.name,'class_id':i.class_id,'sub':i.sub,'tea.sex':i.sex,'home_place':i.home_place + ,'specialty':i.specialty,'start_time':i.start_time,'work_experience':i.work_experience,'college':i.college} for i in r] #删除 def delete_tea_dao(id,db): try: - row = db.query(Tea).filter(Tea.tea_id == id + row = db.query(Tea).filter(Tea.id == id ,Tea.is_delete == False ).update({'is_delete':True,'delete_time':datetime.now()}) except: diff --git a/Teachers/database.py b/Teachers/database.py index 84a5fe0..07ef505 100644 --- a/Teachers/database.py +++ b/Teachers/database.py @@ -1,7 +1,7 @@ from sqlalchemy import * from sqlalchemy.orm import sessionmaker,declarative_base -db_tea = 'mysql+pymysql://root:123456@127.0.0.1:3306/ai0824?charset=utf8mb4' +db_tea = 'mysql+pymysql://root:123456@127.0.0.1:3306/student_manage_system?charset=utf8mb4' engine1 = create_engine(db_tea) Base = declarative_base() diff --git a/Teachers/model/tea_model.py b/Teachers/model/tea_model.py index 6e956ef..08b89f6 100644 --- a/Teachers/model/tea_model.py +++ b/Teachers/model/tea_model.py @@ -8,23 +8,34 @@ class Gender(str,enum.Enum): f = '女' class Tea(Base): - __tablename__ = 'teachers_info' - tea_id = Column(Integer + __tablename__ = 'teachers' + id = Column(Integer , primary_key=True ,nullable=False ,autoincrement=True - ,comment='老师id') - tea_name = Column(String(50) + ,comment='id') + name = Column(String(50) ,nullable=False - ,comment='老师姓名') - tea_sex = Column(Enum(Gender),default='未知' - ,comment='老师性别') + ,comment='姓名') + sex = Column(Enum(Gender),default='未知' + ,comment='性别') class_id = Column(Integer ,nullable=False ,comment='班级id') - class_sub = Column(String(50) + sub = Column(String(50) ,nullable=False ,comment='教学科目') + home_place = Column(String(50) + ,comment='家乡') + specialty = Column(String(50) + ,comment='专业') + start_time = Column(DateTime,comment='入职时间') + work_experience = Column(String(50) + ,comment='工作经验') + education = Column(String(50) + ,comment='学历') + collage = Column(String(50) + ,comment='毕业院校') create_date = Column(DateTime ,default=datetime.now ,comment='创建时间') diff --git a/Teachers/schema/tea_request.py b/Teachers/schema/tea_request.py index d89847c..2a7b468 100644 --- a/Teachers/schema/tea_request.py +++ b/Teachers/schema/tea_request.py @@ -3,16 +3,29 @@ from Teachers.model.tea_model import * #查询使用请求体 class TeaRequest(BaseModel): - tea_id: int|None = None - tea_name: str|None = None - tea_sex: Gender|None = None + id: int|None = None + name: str|None = None + sex: Gender|None = None class_id: int | None = None - class_sub: str|None = None + sub: str|None = None + home_place: str|None = None + collage: str|None = None + education: str|None = None + work_experience: str|None = None + start_time: str|None = None + Speciality: str|None = None + #更新、新增使用请求体(无法覆盖) class NewTeaRequest(BaseModel): - tea_name: str - tea_sex: Gender - class_id: int | None - class_sub: str|None + name: str | None = None + sex: Gender | None = None + class_id: int | None = None + sub: str | None = None + home_place: str | None = None + collage: str | None = None + education: str | None = None + work_experience: str | None = None + start_time: str | None = None + Speciality: str | None = None From 2c969c7b9c38fbef2c84784fce4f33e51a5ecf74 Mon Sep 17 00:00:00 2001 From: geyuan <2732801331@qq.com> Date: Mon, 21 Sep 2026 22:22:32 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E6=94=B9buge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Teachers/api/tea_api.py | 2 +- Teachers/dao/tea_dao.py | 11 ++++++----- Teachers/model/tea_model.py | 2 +- Teachers/schema/tea_request.py | 8 ++++---- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Teachers/api/tea_api.py b/Teachers/api/tea_api.py index 3613f6b..da9519f 100644 --- a/Teachers/api/tea_api.py +++ b/Teachers/api/tea_api.py @@ -9,7 +9,7 @@ from Teachers.schema.tea_response import TeaResponse tea_api = APIRouter(tags=['老师相关接口']) @tea_api.post('/tea',response_model=TeaResponse,summary='新增老师',description='输入新增的老师信息,除去姓名外可以为空') -def add_tea(tea: TeaRequest,db=Depends(get_db)): +def add_tea(tea: NewTeaRequest,db=Depends(get_db)): r = add_tea_dao(tea.model_dump(),db) if not r: raise HTTPException(status_code=500,detail='添加失败!') diff --git a/Teachers/dao/tea_dao.py b/Teachers/dao/tea_dao.py index 9b39829..ce110c6 100644 --- a/Teachers/dao/tea_dao.py +++ b/Teachers/dao/tea_dao.py @@ -14,16 +14,17 @@ def add_tea_dao(t,db): return True #更新 -def update_tea_dao(id,update_data,db): +def add_tea_dao(t, db): try: - rows = db.query(Tea).filter(Tea.id == id - ,Tea.is_delete == False).update(update_data) - except: + t1 = Tea(**t) + db.add(t1) + except Exception as e: db.rollback() + print('新增失败原因:', e) return False else: db.commit() - return rows + return True #查询 def get_tea_dao(t,db): diff --git a/Teachers/model/tea_model.py b/Teachers/model/tea_model.py index 08b89f6..68a09c4 100644 --- a/Teachers/model/tea_model.py +++ b/Teachers/model/tea_model.py @@ -42,7 +42,7 @@ class Tea(Base): update_date = Column(DateTime ,onupdate=datetime.now ,comment='更新时间') - is_delete = Column(Integer,default=False,comment='是否删除') + is_delete = Column(Boolean,default=False,comment='是否删除') delete_time = Column(DateTime) diff --git a/Teachers/schema/tea_request.py b/Teachers/schema/tea_request.py index 2a7b468..2bf3165 100644 --- a/Teachers/schema/tea_request.py +++ b/Teachers/schema/tea_request.py @@ -13,19 +13,19 @@ class TeaRequest(BaseModel): education: str|None = None work_experience: str|None = None start_time: str|None = None - Speciality: str|None = None + specialty: str|None = None #更新、新增使用请求体(无法覆盖) class NewTeaRequest(BaseModel): name: str | None = None - sex: Gender | None = None + sex: Gender class_id: int | None = None sub: str | None = None home_place: str | None = None collage: str | None = None education: str | None = None work_experience: str | None = None - start_time: str | None = None - Speciality: str | None = None + start_time: datetime | None = None + specialty: str | None = None