From 78a9f1bdcbc4e80ad97a404d32e7e0848a5f0816 Mon Sep 17 00:00:00 2001 From: dddd <1163562824@qq.com> Date: Mon, 21 Sep 2026 14:17:09 +0800 Subject: [PATCH] =?UTF-8?q?0921=E7=AC=AC=E4=B8=80=E6=AC=A1=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/class_api.py | 25 +++++++++++++++++++++++++ dao/class_dao.py | 29 +++++++++++++++++++++++++++++ main.py | 2 ++ models/class_model.py | 9 +++------ 4 files changed, 59 insertions(+), 6 deletions(-) diff --git a/api/class_api.py b/api/class_api.py index e69de29..d5af66f 100644 --- a/api/class_api.py +++ b/api/class_api.py @@ -0,0 +1,25 @@ +from fastapi import APIRouter,Depends,HTTPException +from schemas.class_schema import * +from core.database import get_db +from dao.class_dao import * + +classes_router = APIRouter() + +@classes_router.post('/',response_model=ClassResponse) +def post_classes(classes:ClassCreate,db=Depends(get_db)): + c = classes.model_dump() + r = post_classes_dao( c , db ) + if r : + return ClassResponse( total=1,data=c ) + else : + raise HTTPException(status_code=500,detail='添加失败,服务器繁忙,请稍后添加!') + + +@classes_router.put('/{id}',response_model=ClassResponse) +def put_classes(id:int,classes:ClassUpdate,db=Depends(get_db)): + updates = classes.model_dump( exclude_unset=True ) + r = update_classes_dao( id , db , updates ) + if r : + return ClassResponse( total=1,data=updates ) + else : + raise HTTPException(status_code=500, detail='更新失败,该班级已不存在或服务器繁忙,请稍后更新!') \ No newline at end of file diff --git a/dao/class_dao.py b/dao/class_dao.py index e69de29..e1f93a0 100644 --- a/dao/class_dao.py +++ b/dao/class_dao.py @@ -0,0 +1,29 @@ +from models.class_model import Classes + + +def post_classes_dao( c , db ): + try : + cc = Classes( **c ) + db.add( cc ) + except : + db.rollback() + return False + else : + db.commit() + return True + +def update_classes_dao( class_id , db , updates ): + try : + db.query( Classes ).filter( Classes.id==class_id , Classes.is_deleted==0 ) .update( updates ) + except : + db.rollback() + return False + else : + db.commit() + return True + +# def get_classes_dao( class_id , class_name , db ): +# try : +# r = db.query( Classes ).filter( Classes.id==class_id , Classes.is_deleted==0 ) .all() +# except : +# db.rollback() \ No newline at end of file diff --git a/main.py b/main.py index fe32962..51048c7 100644 --- a/main.py +++ b/main.py @@ -6,6 +6,8 @@ app = FastAPI() app.middleware("http")(log_middleware) #-------------朱婷婷-------------- +from api.class_api import classes_router +app.include_router(classes_router,tags=['班级接口'],prefix="/classes") #-------------李玉杰-------------- diff --git a/models/class_model.py b/models/class_model.py index fbaeb63..8c7935d 100644 --- a/models/class_model.py +++ b/models/class_model.py @@ -1,9 +1,6 @@ -from sqlalchemy import * -from datetime import datetime,time,date -from database import * - - -# Base = declarative_base() # 执行函数,返回一个基类 +from sqlalchemy import * # 导入sqlalchemy模块下所有的类,以便下面创建班级表模型和声明表的字段 +from datetime import datetime # 导入datetime模块下的datetime类 +from core.database import Base # 从core软件包下的database模块导入Base class Classes( Base ): # 在python里的名字 __tablename__ = 'classes' # 在数据库中表的名字