# api/teacher.py # 本文件定义教师相关的所有 API 路由(Controller 层) # dao/users_dao.py # 本文件封装对 Teacher表的所有数据库操作(增、删、改、查) # api/teacher.py # 本文件定义教师相关的所有 API 路由(Controller 层) from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from scheme.teacher_scheme import TeacherCreate, TeacherUpdate from dao.teacher_dao import add_teacher, get_teacher_by_id, delete_teacher_logic, update_teacher_logic from database import get_db #创建路由 router=APIRouter() #新增老师 POST @router.post("/") def create_teacher(teacher_in: TeacherCreate, db: Session = Depends(get_db)): return add_teacher(db, teacher_in.teacher_no, teacher_in.name, teacher_in.phone) #根据id查询老师 GET @router.get("/{teacher_id}") def get_one_teacher(teacher_id: int, db: Session = Depends(get_db)): teacher = get_teacher_by_id(db, teacher_id) if not teacher: raise HTTPException(status_code=404, detail="老师不存在") return { "id": teacher.id, "teacher_no": teacher.teacher_no, "name": teacher.name, "phone": teacher.phone } #修改老师 PUT @router.put("/{teacher_id}") def update_teacher(teacher_id: int, teacher_in: TeacherUpdate, db: Session = Depends(get_db)): teacher = update_teacher_logic(db, teacher_id, teacher_in.name, teacher_in.phone) if not teacher: raise HTTPException(status_code=404, detail="老师不存在") return { "id": teacher.id, "teacher_no": teacher.teacher_no, "name": teacher.name, "phone": teacher.phone } #删除老师 DELETE(逻辑删除) @router.delete("/{teacher_id}") def delete_teacher(teacher_id: int, db: Session = Depends(get_db)): teacher = delete_teacher_logic(db, teacher_id) if not teacher: return {"success": False, "msg": "数据不存在"} return {"success": True, "msg": "删除成功"}