Files
student_system/api/student_api.py
T

42 lines
1.5 KiB
Python
Raw Normal View History

2026-09-21 18:03:04 +08:00
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)