From a47b79770bcc8d5e657430cf4ccd767da1ea5920 Mon Sep 17 00:00:00 2001 From: maruizhi <3088243241@qq.com> Date: Mon, 21 Sep 2026 18:14:20 +0800 Subject: [PATCH] mrz --- PythonProject/api/statistics_api.py | 7 +++---- PythonProject/dao/statistics_dao.py | 2 +- PythonProject/main.py | 8 +------- PythonProject/schema/statistics_schema.py | 4 ++++ 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/PythonProject/api/statistics_api.py b/PythonProject/api/statistics_api.py index ab3141d..f934c21 100644 --- a/PythonProject/api/statistics_api.py +++ b/PythonProject/api/statistics_api.py @@ -1,7 +1,7 @@ from fastapi import APIRouter,Depends from dao.statistics_dao import select_all,select_age,select_score,select_avg_score,select_salary,select_days from schema.student_schema import StudentResponse -from schema.statistics_schema import AllStuResponse,AvgDayResponse +from schema.statistics_schema import AllStuResponse,AvgDayResponse,AcgScoreResponse from util.database import get_db StatisticsAPI = APIRouter() @@ -21,10 +21,10 @@ def get_students(min_score:int|None=None,max_score:int|None=None,db=Depends(get_ l = select_score(min_score,max_score,db) return [i for i in l] -@StatisticsAPI.get("/avg_score",response_model=StudentResponse,tags=['统计分析模块'],summary='统计每次考试每个班级的平均分并排序') +@StatisticsAPI.get("/avg_score",response_model=list[AcgScoreResponse],tags=['统计分析模块'],summary='统计每次考试每个班级的平均分并排序') def get_scores(db=Depends(get_db)): l = select_avg_score(db) - return [i for i in l] + return l @StatisticsAPI.get("/salary",response_model=list[StudentResponse],tags=['统计分析模块'],summary='统计薪资最高的前五名的学员信息') def get_scores(db=Depends(get_db)): @@ -35,4 +35,3 @@ def get_scores(db=Depends(get_db)): def get_days(db=Depends(get_db)): l = select_days(db) return l - diff --git a/PythonProject/dao/statistics_dao.py b/PythonProject/dao/statistics_dao.py index 774fb74..52658c8 100644 --- a/PythonProject/dao/statistics_dao.py +++ b/PythonProject/dao/statistics_dao.py @@ -49,7 +49,7 @@ def select_score(min_score,max_score,db): # 实现统计每次考试每个班级的平均分并排序的功能 def select_avg_score(db): try: - l1 = db.query(func.avg(WlScore.score))\ + l1 = db.query(Student_Model.class_id,func.avg(WlScore.score).label('avg_score'))\ .join(Student_Model,WlScore.stu_id == Student_Model.stu_id)\ .filter(WlScore.delete_status==0,Student_Model.delete_status == 0)\ .group_by(Student_Model.class_id)\ diff --git a/PythonProject/main.py b/PythonProject/main.py index 9223bc4..c944c14 100644 --- a/PythonProject/main.py +++ b/PythonProject/main.py @@ -1,5 +1,4 @@ from fastapi import FastAPI - from api.employment_api import emp_api from api.student_api import StudentAPI from api.statistics_api import StatisticsAPI @@ -9,12 +8,7 @@ app = FastAPI(title='沃林学⽣管理系统') app.include_router(StudentAPI) app.include_router(StatisticsAPI) - app.include_router(teacher_api) app.include_router(emp_api) - - -if __name__ == '__main__': - import uvicorn - uvicorn.run("main:app",host='0.0.0.0',port=12310) +app.include_router(gradeAPI) app.include_router(gradeAPI) diff --git a/PythonProject/schema/statistics_schema.py b/PythonProject/schema/statistics_schema.py index 4c967e0..ab8e87b 100644 --- a/PythonProject/schema/statistics_schema.py +++ b/PythonProject/schema/statistics_schema.py @@ -5,6 +5,10 @@ class AllStuResponse(BaseModel): gender: str | None cnt: int +class AcgScoreResponse(BaseModel): + class_id: int + avg_score: float + class AvgDayResponse(BaseModel): class_id: int avg_days: str | None