aaa
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# api/students.py
|
||||
# 本文件定义学生模块的所有 API 路由(Controller 层)
|
||||
from fastapi import APIRouter, Depends, HTTPException, Query
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from database import get_db
|
||||
from dao.student_dao import StudentDAO
|
||||
from scheme.students import StudentCreate, StudentUpdate, StudentResponse, StudentListResponse
|
||||
|
||||
# 创建路由器
|
||||
router = APIRouter(prefix="/students", tags=["学生管理"])
|
||||
|
||||
# 查询学生列表(支持按编号、姓名、班级等条件筛选)
|
||||
@router.get("/list/", response_model=StudentListResponse)
|
||||
async def get_student_list(
|
||||
sid: int = None,
|
||||
name: str = Query(None,max_length=4,description='名字的模糊查询'),
|
||||
cid: int =Query(None,description="根据学生的班级id查询"),
|
||||
gender: str = Query(None,max_length=1,description="选择项(男\女)根据学生性别查询,查询男同学或者女同学"),
|
||||
education: str = Query(None,max_length=2,description="选择项(硕士\本科)根据学生学历查询,查询该学历学生"),
|
||||
page: int = Query(1,description="查看的页数"),
|
||||
size: int = Query(5,description="查询每一页的数量"),
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
total, items = StudentDAO.get_list(db, sid=sid, name=name, cid=cid,
|
||||
gender=gender, education=education,
|
||||
page=page, size=size)
|
||||
return {"total": total, "items": items}
|
||||
|
||||
# 按学号查单个学生
|
||||
@router.get("/{sid}", response_model=StudentResponse)
|
||||
async def get_student_by_id(sid: int, db: Session = Depends(get_db)):
|
||||
return StudentDAO.get_by_id(db, sid)
|
||||
|
||||
# 按照用户输入新增学生
|
||||
@router.post("/create", response_model=StudentResponse)
|
||||
async def create_student(data: StudentCreate, db: Session = Depends(get_db)):
|
||||
return StudentDAO.create(db, data)
|
||||
|
||||
# 更新学生信息
|
||||
@router.put("/update/{sid}", response_model=StudentResponse)
|
||||
async def update_student(sid: int, data: StudentUpdate, db: Session = Depends(get_db)):
|
||||
return StudentDAO.update(db, sid, data)
|
||||
|
||||
# 删除学生
|
||||
@router.post("/delete/{sid}", response_model=StudentResponse)
|
||||
async def delete_student(sid: int, db: Session = Depends(get_db)):
|
||||
return StudentDAO.delete(db, sid)
|
||||
Reference in New Issue
Block a user