# statistic.py # 本文件定义statistic相关的所有 API 路由(Controller 层) from dao.statistic_dao import Statistic from fastapi import APIRouter, Depends, HTTPException, Query from database import get_db router = APIRouter() @router.get("/ages") async def get_ages_interface( age1:int = Query(...,ge=18,lt=30,description="输入年龄"), age2:int|None = Query(default=None,ge=19,lt=30,description="如果要区间则输入最大年龄"), condition:int =Query(...,description="输入比较条件:1是大于,2是小于,3是等于,4是区间"), db = Depends(get_db) ): module = Statistic(db) res = module.get_ages(age1, age2, condition) return { "code": 200, "data": res } @router.get("/class/") async def get_class_interface( db = Depends(get_db) ): module = Statistic(db) res = module.get_class() return { "code": 200, "data": res } @router.get("/grades/") async def get_grades_interface( grades:float=Query(80,ge=0,lt=100,description="输入成绩"), db = Depends(get_db) ): module = Statistic(db) res = module.get_grades(grades) return res @router.get("/bad_grades/") async def get_bad_grades_interface( number:int=Query(...,ge=0,lt=4,description="输入次数"), db = Depends(get_db) ): module = Statistic(db) res = module.get_bad_grades(number) return res # # @router.get("/avg_grade") async def get_avg_interface( sort:int = Query(..., ge=1, le=2, description="1降序高分在前,2升序低分在前"), db=Depends(get_db) ): module = Statistic(db) res = module.get_avg_grades(sort) return {"code":200,"data":res} # @router.get("/top") async def get_top_interface( top:int=Query(...,description="输入排名"), db = Depends(get_db) ): module = Statistic(db) res = module.get_top(top) return res # # @router.get("/get_time") async def get_time_interface(db = Depends(get_db)): module = Statistic(db) res = module.get_time() return res