Merge pull request 'Zhutt' (#9) from zhutt into main

Reviewed-on: #9
This commit is contained in:
2026-09-21 14:22:28 +08:00
5 changed files with 83 additions and 4 deletions
+25
View File
@@ -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='更新失败,该班级已不存在或服务器繁忙,请稍后更新!')
+29
View File
@@ -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()
+2
View File
@@ -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")
#-------------李玉杰--------------
+3 -4
View File
@@ -1,7 +1,6 @@
from sqlalchemy import *
from datetime import datetime,time,date
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' # 在数据库中表的名字
+24
View File
@@ -0,0 +1,24 @@
from pydantic import BaseModel # 导入pydantic模块下的BaseModel类
from datetime import datetime,date # 导入datetime模块下的datetime,date类
# ————定义"创建班级"的"请求体"模型————
class ClassCreate( BaseModel ):
class_no: str
class_name: str
# ————定义"更新班级"的"请求体"模型————
class ClassUpdate( BaseModel ):
class_no: str|None = None
class_name: str|None = None
start_date : date|None = None
end_date : date|None = None
created_at : datetime|None = None
update_at : datetime|None = None
# ————定义"班级"的"响应体"模型————
class ClassResponse( BaseModel ):
code:int = 200
detail:str = '执行成功'
total:int = 0
data:str|dict|list|tuple