Files
sss/student_system_final/api1/classes.py
T
2026-09-21 22:13:04 +08:00

61 lines
1.8 KiB
Python

from fastapi import APIRouter,HTTPException,Depends
from sqlalchemy.orm import Session
from dao.class_dao import ClassDao
from database import get_db
from scheme.classes import ClassUpdate, ClassCreate, ClassResponse, ClassListResponse
router = APIRouter()
#新增
@router.post("/class/",response_model=ClassResponse)
async def create_class(data:ClassCreate,db: Session = Depends(get_db)):
if ClassDao.get_class(db, data.cid):
raise HTTPException(status_code=400, detail="班级编号已存在")
return ClassDao.create_class_list(db, data)
# 条件查询班级
@router.get("/class/get_list/",response_model=ClassListResponse)
async def get_class_list(
cid :int = None,
class_name: str = None,
headteacher:str = None,
page: int = 1,
size: int = 5,
db: Session = Depends(get_db)
):
total, items = ClassDao.get_class_list(db, cid=cid, class_name=class_name,headteacher=headteacher, page=page, size=size)
return {"total": total, "items": items}
# 查询单个班级
# @router.put("/class",response_model=ClassResponse)
# async def list_class(cid:int,db: Session = Depends(get_db)):
# cls = ClassDao.get_class(db,cid)
# if not cls:
# raise HTTPException(status_code=404, detail="班级不存在")
# return cls
# 更新
@router.put("/class/{cid}",response_model=ClassResponse)
async def update_class(cid:int,data:ClassUpdate,db: Session = Depends(get_db)):
cls = ClassDao.update_class(db, cid, data)
if not cls:
raise HTTPException(status_code=404, detail="班级不存在")
return cls
#删除
@router.delete("/class/{cid}")
async def delete_class(cid:int,db: Session = Depends(get_db)):
c = ClassDao.delete_class(db, cid)
if not c:
raise HTTPException(status_code=404, detail="班级不存在")
return None