42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
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)
|