from typing import Optional from fastapi import APIRouter, HTTPException,Depends,Query from sqlalchemy.orm import Session from dao import student_dao from database import get_db from scheme.student_scheme import Create_Stu_Mod # 创建路由器 router = APIRouter() @router.get("/") async def get_students(db: Session = Depends(get_db)): # 把db作为参数传给dao函数 return student_dao.get_stu(db) @router.get("/all_stu") def get_all_stu(db: Session = Depends(get_db)): return student_dao.get_all_stu(db) @router.get("/stu_id") def get_sid(stu_id:Optional[int]=Query(None,gt=0,description="输入学生编号精确查找"), class_id:Optional[int]=Query(None,description="同时输入班级和姓名进行查找"), stu_name:Optional[str]=Query(None,description="同时输入班级和姓名进行查找"), db:Session=Depends(get_db)): if stu_id is not None: return student_dao.query_sid(db,stu_id) elif class_id is not None and stu_name is not None: return student_dao.query_cid(db,class_id,stu_name) return {"message":""} @router.get("/delete/{stu_id}") def delete_sid(stu_id:int,db:Session = Depends(get_db)): return student_dao.delete_sid(db,stu_id) #新增学生 @router.post("/create_stu") def create_stu(stu:Create_Stu_Mod,db:Session = Depends(get_db)): return student_dao.create_stu(db,stu) # 修改学生 @router.post("/update_stu/{stu_id}") def update_stu(stu_id:int,stu:Create_Stu_Mod,db:Session = Depends(get_db)): return student_dao.update_stu(stu_id,stu,db)