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 1/2] 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' From 3d95139558ec696cb1f0638269f960bb19e1bd4a Mon Sep 17 00:00:00 2001 From: 0919word <835535015@qq.com> Date: Mon, 21 Sep 2026 20:03:26 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=92=8B=E7=AB=8B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PythonProject/dao/cla_dao.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PythonProject/dao/cla_dao.py b/PythonProject/dao/cla_dao.py index 272c810..3aa0bbe 100644 --- a/PythonProject/dao/cla_dao.py +++ b/PythonProject/dao/cla_dao.py @@ -31,7 +31,7 @@ def update_class_dao(id:int,req:ClassManagement,session): raise HTTPException(status_code=400,detail="更新格式错误或参数缺失,请重新输入!") return '更新成功,请核对信息!' -def delete_class(id:int,session): +def delete_class_dao(id:int,session): try: session.query(ClassManagement).filter(ClassManagement.class_id==id,ClassManagement.delete_status==0)\ .update({'delete_status': 1})