diff --git a/c_lass.py b/c_lass.py deleted file mode 100644 index 1124b71..0000000 --- a/c_lass.py +++ /dev/null @@ -1,74 +0,0 @@ -# # api/c_lass.py -# # 本文件定义班级的所有 API 路由(Controller 层) - -from fastapi import APIRouter, Depends, HTTPException, Query -# APIRouter=创建路由,Depends=依赖注入,HTTPException=错误响应,Query=查询参数校验 -from sqlalchemy.orm import Session # 会话类型 -from sqlalchemy_fastapi_demo.database import get_db # 导入会话生成器 -from sqlalchemy_fastapi_demo.dao.c_lass import create_c_lass, get_c_lass, get_all_c_lass, update_c_lass, delete_c_lass -# 把DAO层的5个函数都导入进来,接口里直接调用 -from sqlalchemy_fastapi_demo.scheme.c_lass import ClassCreate, ClassUpdate, ClassResponse - -# 路由对象,具体前缀(/c_lass)在 main.py 统一注册 -router = APIRouter()# 创建本模块的路由对象,main.py会把它注册进应用 - - -# ---------- 1. 新增班级 POST ---------- -# 完整地址:POST /c_lass/add -@router.post("/add", response_model=ClassResponse, summary="新增班级") -# 装饰器:注册一个POST接口,路径/add;response_model=返回时按ClassResponse格式化 -def add_c_lass(class_data: ClassCreate, db: Session = Depends(get_db)): - # class_data: ClassCreate = FastAPI自动校验请求体并转成对象;db = FastAPI自动注入会话 - # 先查重:如果这个班级ID已经存在(包括逻辑删除的),进入if - if get_c_lass(db, class_data.class_id): - raise HTTPException(status_code=400, detail="该班级ID已存在,不能重复添加") - return create_c_lass(db, class_data)# 通过查重,调DAO层真正插入,返回结果 - - -# ---------- 2. 根据id查询单个班级 GET ---------- -# 完整地址:GET /c_lass/{class_id} -@router.get("/{class_id}", response_model=ClassResponse, summary="根据id查询班级") -# GET接口,路径里带班级编号,如 GET /c_lass/101 -def get_class_by_id(class_id: int, db: Session = Depends(get_db)): # 调DAO查询 - db_class = get_c_lass(db, class_id) - if not db_class: - raise HTTPException(status_code=404, detail="该班级不存在") # 查不到就返回404,带提示信息 - return db_class - - -# ---------- 3. 分页查询所有班级 GET ---------- -# 完整地址:GET /c_lass/?skip=0&limit=10 -@router.get("/", response_model=list[ClassResponse], summary="分页查询班级列表") -# GET根路径,如 GET /c_lass/?skip=0&limit=10;response_model是列表 -def get_class_list( - skip: int = Query(0, ge=0, description="跳过的记录数"), # 查询参数skip,默认0,必须≥0 - limit: int = Query(10, ge=1, le=200, description="每页最大记录数"), # 查询参数limit,默认10,范围1~200 - db: Session = Depends(get_db), -): - return get_all_c_lass(db, skip, limit) # 调DAO分页查询 - - -# ---------- 4. 修改班级 PUT ---------- -# 完整地址:PUT /c_lass/{class_id} -@router.put("/{class_id}/", response_model=ClassResponse, summary="修改班级信息") -def update_class(class_id: int, update_data: ClassUpdate, db: Session = Depends(get_db)): -# def update_class(class_id: int, start_time: date, db: Session = Depends(get_db)): - - if not get_c_lass(db, class_id): # 先确认要改的班级存在(存在且没删) - raise HTTPException(status_code=404, detail="要修改的班级不存在") - return update_c_lass(db, class_id, update_data) # 调DAO执行局部更新 - - -# ---------- 5. 删除班级 DELETE ---------- -# 完整地址:DELETE /c_lass/{class_id} -@router.delete("/{class_id}", summary="删除班级") -def delete_class(class_id: int, db: Session = Depends(get_db)): - if not delete_c_lass(db, class_id): - raise HTTPException(status_code=404, detail="该班级不存在") - # 删除失败(查不到)返回404 - return {"message": "删除成功"} - - - - -#API 层只做三件事—— 接请求、校验 / 查重、调 DAO,自己不写 SQL \ No newline at end of file