diff --git a/api/student.py b/api/student.py index e69de29..9299659 100644 --- a/api/student.py +++ b/api/student.py @@ -0,0 +1,14 @@ +from fastapi import APIRouter,Depends,HTTPException +from sqlalchemy.orm import Session +from dao.student import * +from schemas.student import StudentCreate + +student_router = APIRouter() + +@student_router.post("/student") +def create_student(request:StudentCreate,db:Session,create = Depends(create_students)): + d = request.model_dump() + r = create_students(d,db) + if not r: + raise HTTPException(status_code=500,detail='服务器繁忙,请稍后添加!') + return {'code':200,'detail':"添加学生成功"} \ No newline at end of file diff --git a/dao/student.py b/dao/student.py index e69de29..9014fe5 100644 --- a/dao/student.py +++ b/dao/student.py @@ -0,0 +1,16 @@ +from schemas.student import * +from core.database import get_db +from models.student import * +from utils.code_generator import generate_no + + +def create_students(d,db): + stu = Student(**d) + try: + db.add(stu) + generate_no("student_no", "STU", stu, db) + db.commit() + except:return False + else: + return True + diff --git a/main.py b/main.py index fe32962..377063e 100644 --- a/main.py +++ b/main.py @@ -2,13 +2,14 @@ from fastapi import FastAPI from api.example import example_router from middleware import log_middleware import uvicorn +from api.student import student_router app = FastAPI() app.middleware("http")(log_middleware) #-------------朱婷婷-------------- #-------------李玉杰-------------- - +app.include_router(student_router) #-------------张义--------------- #-------------薄鑫--------------- diff --git a/schemas/student.py b/schemas/student.py index e69de29..d4a044a 100644 --- a/schemas/student.py +++ b/schemas/student.py @@ -0,0 +1,18 @@ +from pydantic import BaseModel +from datetime import date + +class StudentCreate(BaseModel): + student_no: str|None = None + student_name: str + class_id: int + consultant_id: int | None = None + native_place: str | None = None + graduate_school: str | None = None + major: str | None = None + enrollment_date: date + graduation_date: date | None = None + education: str | None = None + age: int + gender: str + +