From 3ad17208681c4be5eb3e3cc06223a0cde53be2de Mon Sep 17 00:00:00 2001 From: test1 Date: Mon, 21 Sep 2026 18:30:55 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E9=A9=AC=E7=9D=BF=E6=99=BA=E7=89=9B?= =?UTF-8?q?=E9=80=BC=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PythonProject/api/teacher_api.py | 22 ++++++++++++++-------- PythonProject/dao/teacher_dao.py | 18 +++++++++--------- PythonProject/main.py | 2 +- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/PythonProject/api/teacher_api.py b/PythonProject/api/teacher_api.py index 45ff834..0510985 100644 --- a/PythonProject/api/teacher_api.py +++ b/PythonProject/api/teacher_api.py @@ -1,10 +1,11 @@ from fastapi import APIRouter,HTTPException from schema.teacher_schema import Teacher_ResponseModel, Teacher_RequestModel from dao.teacher_dao import * +from util.database import * teacher_api=APIRouter() -@teacher_api.post("/",response_model=Teacher_ResponseModel,tags=['教师基本信息管理模块'],summary='新增教师接口') +@teacher_api.post("/teachers",response_model=Teacher_ResponseModel,tags=['教师基本信息管理模块'],summary='新增教师接口') def add_teacher(teacher:Teacher_RequestModel,session=Depends(get_db)): d=teacher.model_dump() r=add_teacher(req=d,session=session) @@ -13,14 +14,19 @@ def add_teacher(teacher:Teacher_RequestModel,session=Depends(get_db)): return Teacher_ResponseModel(totals=1,data=d) -@teacher_api.get("/",response_model=Teacher_ResponseModel,tags=['教师基本信息管理模块'],summary='查询教师接口') -def get_teacher(id: int, session=Depends(get_db)): - r = get_teacher(id=id, session=session) - if not r: - raise HTTPException(status_code=500, detail='查询异常!') +@teacher_api.get("/teachers",tags=['教师基本信息管理模块'],summary='查询教师接口') +def get_teacher(teacid:int, session=Depends(get_db)): + # r = get_teacher(id=id,session=session) + # if not r: + # raise HTTPException(status_code=500, detail='查询异常!') + try: + l=get_teacher(teacid,session) + return {'code': 200,'msg':'查询成功','data':l} + except: + raise HTTPException(status_code=500,detail='数据库查询异常!') -@teacher_api.put("/",response_model=Teacher_ResponseModel,tags=['教师基本信息管理模块'],summary='更新教师接口') +@teacher_api.put("/teachers",response_model=Teacher_ResponseModel,tags=['教师基本信息管理模块'],summary='更新教师接口') def update_teacher(id:int,teacher:Teacher_RequestModel,session=Depends(get_db)): d=teacher.model_dump() r=update_teacher(id=id,req=d,session=session) @@ -29,7 +35,7 @@ def update_teacher(id:int,teacher:Teacher_RequestModel,session=Depends(get_db)): return {'code': 200, 'totals': r, 'detail': '更新成功'} -@teacher_api.delete("/",response_model=Teacher_ResponseModel,tags=['教师基本信息管理模块'],summary='删除教师接口') +@teacher_api.delete("/teachers",response_model=Teacher_ResponseModel,tags=['教师基本信息管理模块'],summary='删除教师接口') def delete_teacher(id:int,session=Depends(get_db)): r=delete_teacher(id=id,session=session) if not r: diff --git a/PythonProject/dao/teacher_dao.py b/PythonProject/dao/teacher_dao.py index 694598e..acce61c 100644 --- a/PythonProject/dao/teacher_dao.py +++ b/PythonProject/dao/teacher_dao.py @@ -1,7 +1,6 @@ from fastapi import HTTPException,Depends -from model.all_model import Teacher_Model -from util.database import * from schema.teacher_schema import Teacher_RequestModel +from model.all_model import * def add_teacher(req:Teacher_RequestModel,session): try: @@ -12,14 +11,15 @@ def add_teacher(req:Teacher_RequestModel,session): raise HTTPException(status_code=500,detail="添加异常!") return req.model_dump() -def get_teacher(session): - try: - teacher_list=session.query(Teacher_Model).filter(Teacher_Model.delete_status==0).all() - return teacher_list - except: - raise HTTPException(status_code=500,detail="查询异常!") +def get_teacher(id,session): + l=session.query(Teacher_Model).filter(Teacher_Model.teac_id==id)\ + .filter(Teacher_Model.delete_status==0).all() + if l: + return l + else: + raise HTTPException(status_code=404,detail='该老师不存在!') -def update_teacher(id:int,req:Teacher_RequestModel,session): +def update_teacher(teac_id:int,req:Teacher_RequestModel,session): try: session.query(Teacher_Model).filter(Teacher_Model.teac_id==id)\ .filter(Teacher_Model.delete_status==0).update(req.model_dump(exclude_unset=True)) diff --git a/PythonProject/main.py b/PythonProject/main.py index b2aef0b..025e417 100644 --- a/PythonProject/main.py +++ b/PythonProject/main.py @@ -13,5 +13,5 @@ app.include_router(teacher_api) if __name__ == '__main__': import uvicorn - uvicorn.run("main:app",host='0.0.0.0',port=12310) + uvicorn.run("main:app",host='0.0.0.0',port=12320) app.include_router(gradeAPI) \ No newline at end of file From 5811a68d654dd7146c94fd5fb599892a03c10d14 Mon Sep 17 00:00:00 2001 From: test1 Date: Mon, 21 Sep 2026 20:00:35 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E9=A9=AC=E7=9D=BF=E6=99=BA=E7=89=9B?= =?UTF-8?q?=E9=80=BC=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PythonProject/api/teacher_api.py | 16 +++++++--------- PythonProject/dao/teacher_dao.py | 16 +++++++++++----- PythonProject/schema/teacher_schema.py | 18 ++++-------------- 3 files changed, 22 insertions(+), 28 deletions(-) diff --git a/PythonProject/api/teacher_api.py b/PythonProject/api/teacher_api.py index 0510985..c0ba4fb 100644 --- a/PythonProject/api/teacher_api.py +++ b/PythonProject/api/teacher_api.py @@ -1,18 +1,16 @@ -from fastapi import APIRouter,HTTPException +from fastapi import APIRouter,HTTPException,Depends from schema.teacher_schema import Teacher_ResponseModel, Teacher_RequestModel -from dao.teacher_dao import * -from util.database import * +from dao.teacher_dao import add_teacher +from util.database import get_db teacher_api=APIRouter() @teacher_api.post("/teachers",response_model=Teacher_ResponseModel,tags=['教师基本信息管理模块'],summary='新增教师接口') -def add_teacher(teacher:Teacher_RequestModel,session=Depends(get_db)): - d=teacher.model_dump() - r=add_teacher(req=d,session=session) - if not r: +def get_teacher(x1:Teacher_RequestModel,session=Depends(get_db)): + y=add_teacher(x1.model_dump(),session) + if not y: raise HTTPException(status_code=500,detail='添加异常!') - return Teacher_ResponseModel(totals=1,data=d) - + return x1 @teacher_api.get("/teachers",tags=['教师基本信息管理模块'],summary='查询教师接口') def get_teacher(teacid:int, session=Depends(get_db)): diff --git a/PythonProject/dao/teacher_dao.py b/PythonProject/dao/teacher_dao.py index acce61c..cfb3eed 100644 --- a/PythonProject/dao/teacher_dao.py +++ b/PythonProject/dao/teacher_dao.py @@ -2,14 +2,20 @@ from fastapi import HTTPException,Depends from schema.teacher_schema import Teacher_RequestModel from model.all_model import * -def add_teacher(req:Teacher_RequestModel,session): +def add_teacher(teacher,session): try: - data=req.model_dump() - session.add(Teacher_Model(**data)) + print(teacher) + x=Teacher_Model(**teacher) + print(1) + session.add(x) + print(2) session.commit() + print(3) + return teacher except: - raise HTTPException(status_code=500,detail="添加异常!") - return req.model_dump() + session.rollback() + # raise HTTPException(status_code=500,detail='添加异常!') + return None def get_teacher(id,session): l=session.query(Teacher_Model).filter(Teacher_Model.teac_id==id)\ diff --git a/PythonProject/schema/teacher_schema.py b/PythonProject/schema/teacher_schema.py index 8f60539..604c53b 100644 --- a/PythonProject/schema/teacher_schema.py +++ b/PythonProject/schema/teacher_schema.py @@ -1,27 +1,17 @@ -from datetime import date from pydantic import BaseModel -# from pydantic.v1 import BaseModel -from datetime import datetime + class Teacher_RequestModel(BaseModel): teac_name:str teac_gender:str teac_age:int teac_position:str - delete_status:int class Teacher_ResponseModel(BaseModel): code:int=200 detail:str='OK!' teac_name:str - totals:int=0 - data:str|list|tuple|dict - - - - - - - - + teac_gender:str + teac_age:int + teac_position:str From 8669a33916fccad28bc9e4c5d181ac73c9228825 Mon Sep 17 00:00:00 2001 From: 00MSJ1122 <1253313142@qq.com> Date: Mon, 21 Sep 2026 20:01:42 +0800 Subject: [PATCH 3/4] 1 --- PythonProject/api/student_api.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PythonProject/api/student_api.py b/PythonProject/api/student_api.py index 050991a..7ff2fe1 100644 --- a/PythonProject/api/student_api.py +++ b/PythonProject/api/student_api.py @@ -6,7 +6,7 @@ from util.database import get_db StudentAPI = APIRouter() -@StudentAPI.get('/',response_model=list[StudentPageResponse],tags=['学⽣基本信息管理模块'],description='查询学生信息') +@StudentAPI.get('/students',response_model=list[StudentPageResponse],tags=['学⽣基本信息管理模块'],description='查询学生信息') def get_students(stu_id:int|None=None ,stu_name:str|None=None ,class_id:int|None=None @@ -49,7 +49,7 @@ def del_students(stu_id:int raise HTTPException(status_code=500,detail='没有删除') return {'code':200,'totals':rows,'detail':'删除成功'} -@StudentAPI.post('/',tags=['学⽣基本信息管理模块'],response_model=StugetResponse) +@StudentAPI.post('/students',tags=['学⽣基本信息管理模块'],response_model=StugetResponse) def add_students(s:StudentRequest ,db=Depends(get_db)): d=s.model_dump(exclude_unset=False) @@ -59,7 +59,7 @@ def add_students(s:StudentRequest return stu_new -@StudentAPI.put('/',tags=['学⽣基本信息管理模块']) +@StudentAPI.put('/students',tags=['学⽣基本信息管理模块']) def get_students(stu_id:int|None = None ,stu_name:str|None = None ,class_id:int|None=None From 5ea7a73295593ec79de8605e067d8942ad255159 Mon Sep 17 00:00:00 2001 From: Windows <2209639385@qq.com> Date: Mon, 21 Sep 2026 20:03:17 +0800 Subject: [PATCH 4/4] nb --- PythonProject/api/grade_api.py | 22 ++++++++++++++++------ PythonProject/dao/grade_dao.py | 28 +++++++++++++++++++++++++++- PythonProject/schema/grade_schema.py | 4 ++++ 3 files changed, 47 insertions(+), 7 deletions(-) diff --git a/PythonProject/api/grade_api.py b/PythonProject/api/grade_api.py index 5872b26..f8ab18b 100644 --- a/PythonProject/api/grade_api.py +++ b/PythonProject/api/grade_api.py @@ -14,17 +14,27 @@ def get_grade(stu_id: int,db=Depends(get_db)): except Exception as e: raise HTTPException(status_code=500,detail=f'数据库查询异常:{str(e)}') -@gradeAPI.post('/{stu_id}',response_model=GradeResponse,summary='添加学生成绩') +@gradeAPI.post('/grade',response_model=GradeResponse,summary='添加学生成绩') def post_grade(o:GradeRequest=Form(),db=Depends(get_db)): - - exist_obj = get_grade_dao(db,o.stu_id) - if exist_obj: - raise HTTPException(status_code=409, detail="该学生此考核序次成绩已存在!") - d=o.model_dump() r=add_grade_dao(g=d,db=db) if not r: raise HTTPException(status_code=400, detail='学生不存在') return o +@gradeAPI.put('/{score_id}',summary='成绩修改') +def put_grade(score_id: int,o:GradeUpdate,db=Depends(get_db)): + d = o.model_update(exclude_unset=True) + r = update_grade_dao(score_id=score_id + ,update_data=d + ,db=db) + if not r: + raise HTTPException(status_code=500,detail='没有更新') + return {'code':200,'totals':r,'detail':'更新成功'} +@gradeAPI.delete('/{score_id}',summary='删除成绩') +def delete_grade(score_id:int,db=Depends(get_db)): + r = delete_grade_dao(stu_id=score_id,db=db) + if not r: + raise HTTPException(status_code=404,detail='删除失败') + return {'code':200,'totals':r,'detail':'删除成功'} \ No newline at end of file diff --git a/PythonProject/dao/grade_dao.py b/PythonProject/dao/grade_dao.py index 9471ae7..a30c5e2 100644 --- a/PythonProject/dao/grade_dao.py +++ b/PythonProject/dao/grade_dao.py @@ -21,4 +21,30 @@ def add_grade_dao(g,db): return o1 except Exception: db.rollback() - return None \ No newline at end of file + return None + +def update_grade_dao(score_id:int, update_data, db): + try: + rows = db.query(WlScore).filter( + WlScore.stu_id == score_id, + WlScore.delete_status == 0 + ).update(update_data) + except: + db.rollback() + return False + else: + db.commit() + return rows + +def delete_grade_dao(stu_id:int,db): + try: + rows = db.query(WlScore).filter( + WlScore.stu_id == stu_id, + WlScore.delete_status == 0 + ).update({'delete_status':1}) + except: + db.rollback() + return False + else: + db.commit() + return rows diff --git a/PythonProject/schema/grade_schema.py b/PythonProject/schema/grade_schema.py index d1ff0ae..d669265 100644 --- a/PythonProject/schema/grade_schema.py +++ b/PythonProject/schema/grade_schema.py @@ -8,6 +8,10 @@ class GradeRequest(BaseModel): exam_order:int = Field(description='考核序次') score:float = Field(description='成绩') +class GradeUpdate(BaseModel):#修改请求体 + exam_order: int = Field(description='考核序次') + score: float = Field(description='成绩') + class GradeResponse(BaseModel): code: int = 200 detail: str = 'OK'