Files
student_system/api/teacher_api.py
T

56 lines
2.0 KiB
Python

# 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": "删除成功"}