56 lines
2.0 KiB
Python
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": "删除成功"}
|
||
|
|
|
||
|
|
|