Files
1/api/wl_student_api.py
T

46 lines
1.5 KiB
Python
Raw Normal View History

2026-09-12 16:30:43 +08:00
from fastapi import APIRouter, Depends, HTTPException, Query
from sqlalchemy.orm import Session
from database import get_db
from scheme.wl_student_scheme import StudentCreate, StudentUpdate, StudentOut
from dao import wl_student_dao
router = APIRouter(prefix="/students", tags=["学生管理"])
@router.get("", response_model=list[StudentOut])
def list_students(
stu_no: str = Query(None),
stu_name: str = Query(None),
class_id: int = Query(None),
db: Session = Depends(get_db),
):
return wl_student_dao.search_students(db, stu_no, stu_name, class_id)
@router.post("", response_model=StudentOut)
def create_student(data: StudentCreate, db: Session = Depends(get_db)):
return wl_student_dao.create_student(db, data)
@router.get("/{stu_no}", response_model=StudentOut)
def get_student(stu_no: str, db: Session = Depends(get_db)):
stu = wl_student_dao.get_student_by_no(db, stu_no)
if not stu:
raise HTTPException(404, "学生不存在")
return stu
@router.put("/{stu_no}", response_model=StudentOut)
def update_student(stu_no: str, data: StudentUpdate, db: Session = Depends(get_db)):
stu = wl_student_dao.update_student(db, stu_no, data)
if not stu:
raise HTTPException(404, "学生不存在")
return stu
@router.delete("/{stu_no}")
def delete_student(stu_no: str, db: Session = Depends(get_db)):
if not wl_student_dao.delete_student(db, stu_no):
raise HTTPException(404, "学生不存在")
return {"msg": "删除成功"}