From da15aa349d2c9462a74a22cd6dc6194aabda9902 Mon Sep 17 00:00:00 2001 From: akun <906176381@qq.com> Date: Mon, 21 Sep 2026 20:18:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20student/api/score.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- student/api/score.py | 75 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 student/api/score.py diff --git a/student/api/score.py b/student/api/score.py new file mode 100644 index 0000000..f128526 --- /dev/null +++ b/student/api/score.py @@ -0,0 +1,75 @@ +# api/score.py +from fastapi import APIRouter, Depends, HTTPException, Query +from sqlalchemy.orm import Session +from dao import score_dao +from database import get_db + +# 创建路由器 +router = APIRouter() + + + +# 不及格学生表 + +@router.get("/warning/list") +def warning_list(db: Session = Depends(get_db)): + return score_dao.get_warning(db) + + + +# 查某学生所有成绩 + + +@router.get("/{stu_id}") +def get_scores(stu_id: int, db: Session = Depends(get_db)): + return score_dao.get_score(db, stu_id) + + +# 增 + +@router.post("/") +def add_score( + student_id: int = Query(...), + exam_seq: int = Query(...), + score: float = Query(...), + db: Session = Depends(get_db), +): + obj, err = score_dao.add_score(db, student_id, exam_seq, score) + if err: + raise HTTPException(status_code=400, detail=err) + return obj + + + + +# 改 + + +@router.put("/update") +def update_score( + student_id: int = Query(...), + exam_seq: int = Query(...), + score: float = Query(...), + db: Session = Depends(get_db), +): + obj, err = score_dao.update_score(db, student_id, exam_seq, score) + if err: + raise HTTPException(status_code=404, detail=err) + return obj + + +# 逻辑删除 + + +@router.post("/delete") +def delete_score( + student_id: int = Query(...), + exam_seq: int = Query(...), + db: Session = Depends(get_db), +): + obj, err = score_dao.delete_score(db, student_id, exam_seq) + if err: + raise HTTPException(status_code=404, detail=err) + return {"message": "已删除,数据仍保留在后台"} + +