Files
SST/PythonProject/api/grade_api.py
T
2026-09-21 21:40:48 +08:00

40 lines
1.6 KiB
Python

from fastapi import APIRouter,Depends,HTTPException,Path,Form
from util.database import get_db
from model.all_model import Student_Model
from dao.grade_dao import *
from schema.grade_schema import *
gradeAPI = APIRouter(tags=['学生考核成绩'])
@gradeAPI.get("/grade/{stu_id}",response_model=list[GradeResponse],summary="根据学生id查询成绩")
def get_grade(stu_id: int,db=Depends(get_db)):
try:
res=get_grade_dao(stu_id,db)
return res
except Exception as e:
raise HTTPException(status_code=500,detail=f'数据库查询异常:{str(e)}')
@gradeAPI.post('/grade',response_model=GradeResponse,summary='添加学生成绩')
def post_grade(o:GradeRequest=Form(),db=Depends(get_db)):
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:GradeRequest=Form(),db=Depends(get_db)):
d = o.model_dump(exclude_unset=True)
r = update_grade_dao(score_id=score_id
,update_data=d
,db=db)
if not d:
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':'删除成功'}