From ed0d685ab587afe5b0e790744f24d2048d3e523a Mon Sep 17 00:00:00 2001 From: maruizhi <3088243241@qq.com> Date: Mon, 21 Sep 2026 15:38:21 +0800 Subject: [PATCH 1/5] mrz --- PythonProject/main.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PythonProject/main.py b/PythonProject/main.py index 7d661dd..af9dc5c 100644 --- a/PythonProject/main.py +++ b/PythonProject/main.py @@ -1,5 +1,7 @@ from fastapi import FastAPI from api.student_api import StudentAPI +from api.statistics_api import StatisticsAPI app = FastAPI() app.include_router(StudentAPI) +app.include_router(StatisticsAPI) From 08142f9619c5a9eb6771cc5c15d889d6e74e1409 Mon Sep 17 00:00:00 2001 From: test1 Date: Mon, 21 Sep 2026 16:12:50 +0800 Subject: [PATCH 2/5] =?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 | 13 ++++++------- PythonProject/dao/teacher_dao.py | 8 ++++---- PythonProject/schema/teacher_schema.py | 4 ++-- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/PythonProject/api/teacher_api.py b/PythonProject/api/teacher_api.py index 44f23a5..9cc1c56 100644 --- a/PythonProject/api/teacher_api.py +++ b/PythonProject/api/teacher_api.py @@ -9,7 +9,7 @@ from dao.teacher_dao import * teacher_api=APIRouter() @teacher_api.post("",response_model=Teacher_ResponseModel) -def add_teacher1(teacher:Teacher_RequestModel,session=Depends(get_db())): +def add_teacher1(teacher:Teacher_RequestModel,session=Depends(get_db)): d=teacher.model_dump() r=add_teacher(req=d,session=session) if not r: @@ -18,16 +18,15 @@ def add_teacher1(teacher:Teacher_RequestModel,session=Depends(get_db())): @teacher_api.get("",response_model=Teacher_ResponseModel) -def get_teacher(id:int,session=Depends(get_db)): - r = session.query(Teacher_Model).filter( Teacher_Model.teac_id == id ).all() - if r: - return [{'teac_name':i.teac_name,'teac_gender':i.teac_gender,'teac_age':i.teac_age,'teac_position':i.teac_position} for i in r] - raise HTTPException(status_code=404,detail='老师不存在!') +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.put("",response_model=Teacher_ResponseModel) def update_teacher1(id:int,teacher:Teacher_RequestModel,session=Depends(get_db)): - d=teacher.model_dump + d=teacher.model_dump() r=update_teacher(id=id,req=d,session=session) if not r: raise HTTPException(status_code=500, detail='更新异常!') diff --git a/PythonProject/dao/teacher_dao.py b/PythonProject/dao/teacher_dao.py index 01d51ac..192d992 100644 --- a/PythonProject/dao/teacher_dao.py +++ b/PythonProject/dao/teacher_dao.py @@ -3,7 +3,7 @@ from model.all_model import Teacher_Model from util.database import * from schema.teacher_schema import Teacher_RequestModel -def add_teacher(req:Teacher_RequestModel,session=Depends(get_db)): +def add_teacher(req:Teacher_RequestModel,session): try: data=req.model_dump() session.add(Teacher_Model(**data)) @@ -12,14 +12,14 @@ def add_teacher(req:Teacher_RequestModel,session=Depends(get_db)): raise HTTPException(status_code=500,detail="添加异常!") return req.model_dump() -def select_teacher(session=Depends(get_db)): +def select_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 update_teacher(id:int,req:Teacher_RequestModel,session=Depends(get_db)): +def update_teacher(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)) @@ -27,7 +27,7 @@ def update_teacher(id:int,req:Teacher_RequestModel,session=Depends(get_db)): except: raise HTTPException(status_code=500,detail="更新异常!") -def delete_teacher(id:int,session=Depends(get_db)): +def delete_teacher(id:int,session): try: session.query(Teacher_Model).filter(Teacher_Model.teac_id==id,Teacher_Model.delete_status==0)\ .update({'delete_status':1}) diff --git a/PythonProject/schema/teacher_schema.py b/PythonProject/schema/teacher_schema.py index 0344fec..8f60539 100644 --- a/PythonProject/schema/teacher_schema.py +++ b/PythonProject/schema/teacher_schema.py @@ -1,6 +1,6 @@ from datetime import date - -from pydantic.v1 import BaseModel +from pydantic import BaseModel +# from pydantic.v1 import BaseModel from datetime import datetime class Teacher_RequestModel(BaseModel): From 4dbef61c5631255593ce43f1fa3154207a2d6118 Mon Sep 17 00:00:00 2001 From: maruizhi <3088243241@qq.com> Date: Mon, 21 Sep 2026 16:16:48 +0800 Subject: [PATCH 3/5] mrz --- PythonProject/api/statistics_api.py | 28 +++++++++++++++------------- PythonProject/dao/statistics_dao.py | 26 +++++++++++++------------- 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/PythonProject/api/statistics_api.py b/PythonProject/api/statistics_api.py index 0135d31..82f81b7 100644 --- a/PythonProject/api/statistics_api.py +++ b/PythonProject/api/statistics_api.py @@ -1,20 +1,22 @@ -from fastapi import APIRouter +from fastapi import APIRouter,Depends from dao.statistics_dao import select_all,select_age,select_score from schema.student_schema import StudentResponse +from util.database import get_db -StudentAPI = APIRouter() +StatisticsAPI = APIRouter() -@StudentAPI.get("/age",response_model=StudentResponse,tags=['统计分析模块'],description='根据年龄查询学生信息') -def get_students(min_age:int|None=None,max_age:int|None=None): - l = select_age(min_age,max_age) +@StatisticsAPI.get("/age",response_model=list[StudentResponse],tags=['统计分析模块'],description='根据年龄查询学生信息') +def get_students(min_age:int|None=None,max_age:int|None=None,db=Depends(get_db)): + l = select_age(min_age,max_age,db) + print(l) + return l + +@StatisticsAPI.get("/all",response_model=StudentResponse,tags=['统计分析模块'],description='统计每个班级的学员总数和男女生总数') +def get_students(db=Depends(get_db)): + l = select_all(db) return [i for i in l] -@StudentAPI.get("/all",response_model=StudentResponse,tags=['统计分析模块'],description='统计每个班级的学员总数和男女生总数') -def get_students(): - l = select_all() +@StatisticsAPI.get("/score",response_model=StudentResponse,tags=['统计分析模块'],description='根据成绩查询学生信息') +def get_students(min_score:int|None=None,max_score:int|None=None,db=Depends(get_db)): + l = select_score(min_score,max_score,db) return [i for i in l] - -@StudentAPI.get("/score",response_model=StudentResponse,tags=['统计分析模块'],description='根据成绩查询学生信息') -def get_students(min_score:int|None=None,max_score:int|None=None): - l = select_score(min_score,max_score) - return [i for i in l] \ No newline at end of file diff --git a/PythonProject/dao/statistics_dao.py b/PythonProject/dao/statistics_dao.py index bb9c068..f0c3879 100644 --- a/PythonProject/dao/statistics_dao.py +++ b/PythonProject/dao/statistics_dao.py @@ -4,42 +4,42 @@ from model.all_model import Student_Model,WlScore from util.database import get_db # 实现根据年龄查询学生信息的功能 -def select_age(min_age,max_age,session=Depends(get_db)): +def select_age(min_age,max_age,db): try: if min_age is None and max_age is None: raise HTTPException(status_code=400, detail="请至少传入一个参数") - session = session.query(Student_Model) + db = db.query(Student_Model) if min_age is not None: - session = session.filter(Student_Model.age >= min_age,Student_Model.delete_status == 0) + db = db.filter(Student_Model.age >= min_age,Student_Model.delete_status == 0) if max_age is not None: - session = session.filter(Student_Model.age <= max_age,Student_Model.delete_status == 0) - return session.all() + db = db.filter(Student_Model.age <= max_age,Student_Model.delete_status == 0) + print(db.all()) + return db.all() except HTTPException: raise except Exception: raise HTTPException(status_code=500,detail="查询异常") # 实现统计每个班级的学员总数以及男女生的总数的功能 -def select_all(session=Depends(get_db)): - print('1234') +def select_all(db): try: - l1 = session.query(Student_Model.class_id,func.count(1)).group_by(Student_Model.class_id,Student_Model.gender).all() + l1 = db.query(Student_Model.class_id,func.count(1)).group_by(Student_Model.class_id,Student_Model.gender).all() return l1 except Exception: raise HTTPException(status_code=500,detail="查询异常") # 实现根据成绩查询学员信息的功能 -def select_score(min_score,max_score,session=Depends(get_db)): +def select_score(min_score,max_score,db): try: if min_score is None and max_score is None: raise HTTPException(status_code=400, detail="请至少传入一个参数") - session = session.query(Student_Model,WlScore.score,WlScore.score)\ + db = db.query(Student_Model,WlScore.score,WlScore.score)\ .join(WlScore,WlScore.stu_id == Student_Model.stu_id,WlScore.delete_status==0,WlScore.delete_status == 0) if min_score is not None: - session = session.filter(WlScore.score >= min_score) + db = db.filter(WlScore.score >= min_score) if min_score is not None: - session = session.filter(WlScore.score <= max_score) - return session.all() + db = db.filter(WlScore.score <= max_score) + return db.all() except HTTPException: raise except Exception: From 9ccf526ba5663ab921cc653bfc104dec609dccf0 Mon Sep 17 00:00:00 2001 From: maruizhi <3088243241@qq.com> Date: Mon, 21 Sep 2026 16:24:19 +0800 Subject: [PATCH 4/5] mrz --- PythonProject/api/statistics_api.py | 1 - PythonProject/dao/statistics_dao.py | 7 ++++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/PythonProject/api/statistics_api.py b/PythonProject/api/statistics_api.py index 82f81b7..aff954a 100644 --- a/PythonProject/api/statistics_api.py +++ b/PythonProject/api/statistics_api.py @@ -8,7 +8,6 @@ StatisticsAPI = APIRouter() @StatisticsAPI.get("/age",response_model=list[StudentResponse],tags=['统计分析模块'],description='根据年龄查询学生信息') def get_students(min_age:int|None=None,max_age:int|None=None,db=Depends(get_db)): l = select_age(min_age,max_age,db) - print(l) return l @StatisticsAPI.get("/all",response_model=StudentResponse,tags=['统计分析模块'],description='统计每个班级的学员总数和男女生总数') diff --git a/PythonProject/dao/statistics_dao.py b/PythonProject/dao/statistics_dao.py index f0c3879..249e6d1 100644 --- a/PythonProject/dao/statistics_dao.py +++ b/PythonProject/dao/statistics_dao.py @@ -13,7 +13,7 @@ def select_age(min_age,max_age,db): db = db.filter(Student_Model.age >= min_age,Student_Model.delete_status == 0) if max_age is not None: db = db.filter(Student_Model.age <= max_age,Student_Model.delete_status == 0) - print(db.all()) + print('abc',db.all()) return db.all() except HTTPException: raise @@ -23,7 +23,7 @@ def select_age(min_age,max_age,db): # 实现统计每个班级的学员总数以及男女生的总数的功能 def select_all(db): try: - l1 = db.query(Student_Model.class_id,func.count(1)).group_by(Student_Model.class_id,Student_Model.gender).all() + l1 = db.query(Student_Model.class_id,Student_Model.gender,func.count(1)).group_by(Student_Model.class_id,Student_Model.gender).all() return l1 except Exception: raise HTTPException(status_code=500,detail="查询异常") @@ -43,4 +43,5 @@ def select_score(min_score,max_score,db): except HTTPException: raise except Exception: - raise HTTPException(status_code=500,detail="查询异常") \ No newline at end of file + raise HTTPException(status_code=500,detail="查询异常") + From 0a92849be692eee4c01508ac81fd677453450621 Mon Sep 17 00:00:00 2001 From: maruizhi <3088243241@qq.com> Date: Mon, 21 Sep 2026 16:25:47 +0800 Subject: [PATCH 5/5] mrz --- 需求文档.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/需求文档.md b/需求文档.md index 2df2681..d6eb866 100644 --- a/需求文档.md +++ b/需求文档.md @@ -57,7 +57,7 @@ dao层(每一个功能就是一个函数,判断能否功能复用) 实现统计每个班级的学员总数以及男女生的总数的功能 **mrz 已作成** 实现根据成绩查询学员信息的功能 **mrz 已作成** 实现统计每次考试每个班级的平均分并排序的功能 **mrz 做成中** -实现统计薪资最高的前五名的学员信息 **sgt 做成中** -实现查询每个学生的就业时长 **xxx 做成中** +实现统计薪资最高的前五名的学员信息 **mrz 做成中** +实现查询每个学生的就业时长 **msj 做成中** 实现统计每个班级的平均就业时长 **xxx 做成中**