Files
test/api/score.py
T
2026-09-21 17:39:16 +08:00

40 lines
2.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from fastapi import APIRouter, Depends, HTTPException, Query
from sqlalchemy.orm import Session
from database import get_db
from dao.scores import add_score,query_id,query_er,query_sc,update_sc,delete_sc
router = APIRouter(prefix="/scores", tags=["考核成绩管理"])
@router.post("/add", summary="按考核序次录入考核成绩") #1.录入成绩的路由
def add_score_api(id: str = Query(..., description="学生ID"), #用于校验学生ID是否存在
exam_round: int = Query(..., description="考核序次"), #用于校验同一学生同一考核序次是否重复录入
score: int = Query(..., ge=0, le=100, description="成绩(0-100)"), #录入的成绩
db: Session = Depends(get_db)):
return add_score(db=db, id=id, exam_round=exam_round, score=score)
@router.get("/query/id", summary="按学生ID查询成绩") #2. 按学生ID查询的路由
def query_id_api(id: str = Query(..., description="学生ID"),
db: Session = Depends(get_db)):
return query_id(db=db, id=id)
@router.get("/query/round", summary="按考核序次查询成绩") #3. 按考核序次查询的路由
def query_er_api(exam_round: int = Query(..., description="考核序次"),
db: Session = Depends(get_db)):
return query_er(db=db, exam_round=exam_round)
@router.get("/query/score", summary="按成绩查询记录") #4. 按成绩查询的路由
def query_sc_api(score: int = Query(..., ge=0, le=100, description="成绩"),
db: Session = Depends(get_db)):
return query_sc(db=db, score=score)
@router.put("/update", summary="根据学生ID和考核序次修改成绩") #5. 修改成绩的路由
def update_sc_api(id: str = Query(..., description="学生ID"), #根据学生ID
exam_round: int = Query(..., description="考核序次"), #根据考核序次
score: int = Query(..., ge=0, le=100, description="新的成绩"), #修改的成绩值
db: Session = Depends(get_db)):
return update_sc(db=db, id=id, exam_round=exam_round, score=score)
@router.delete("/delete", summary="根据学生ID和考核序次删除成绩") #6. 删除成绩(软删除)
def delete_sc_api(id: str = Query(..., description="学生ID"), #根据学生ID
exam_round: int = Query(..., description="考核序次"), #根据考核序次
db: Session = Depends(get_db)):
return delete_sc(db=db, id=id, exam_round=exam_round)