from fastapi import APIRouter,Depends,UploadFile,File,Query from dao.th_dao import insert_teachers_dao,update_teachers_dao,delete_teachers_dao,get_teachers_limit_dao,get_teachers_name_dao from schema.th_schema import RequestModel, ResponseModel from database import get_db t_router = APIRouter() @t_router.get("",summary='分页查询教师接口') def get_teachers(p:int=Query(default=0,ge=0,description='页码,0表示查询全部'), n:int=Query(default=0,ge=0,description='每页条数,0表示查询全部'), db=Depends(get_db)): db_teachers = get_teachers_limit_dao(p,n,db) return ResponseModel(data=db_teachers,total=len(db_teachers)) @t_router.get("/{name}",summary='通过名称查询教师接口') def get_name_teachers(name:str,db=Depends(get_db)): db_teachers = get_teachers_name_dao(name,db) return ResponseModel(data=db_teachers,total=len(db_teachers)) @t_router.post("",summary='新增教师接口') def insert_teachers(req:RequestModel,db=Depends(get_db)): rq= req.model_dump() n,m = insert_teachers_dao(rq,db) # print('打印获取的值:',n,m) return ResponseModel(total=n,msg=m) @t_router.put("",summary='更新教师接口') def update_teachers(req:RequestModel,db=Depends(get_db)): rq= req.model_dump() n,m = update_teachers_dao(rq,db) return ResponseModel(total=n,msg=m) @t_router.delete("/{t_id}",summary='删除教师接口') def delete_teachers(t_id:int,db=Depends(get_db)): n,m =delete_teachers_dao(t_id,db) return ResponseModel(msg=m,total=n) @t_router.post('/files',summary='上传文件接口') async def upload_files(f:UploadFile=File(),db=Depends(get_db)): # print('UploadFile上传文件,读取该对象:',f) text =await f.read() l =text.decode('utf-8').split('\n') lg = 0 dt = [] print('长度为',lg,l) for i in l: if '教师编号' in i: continue p = i.split() if not p: # 判断如果p为[],跳过 continue l2 = ['t_id','t_name','t_age','t_phone','t_sex','class_id'] d =dict() for j in range(len(p)): d[l2[j]]=p[j] insert_teachers_dao(d,db) lg = lg + 1 dt.append(d) return ResponseModel(msg='上传成功',total=lg,data=dt)