from fastapi import APIRouter,Depends,UploadFile,File,Query from model.teaModel import Session from dao.teaDao import insert_teachers_dao,update_teachers_dao,delete_teachers_dao,get_teachers_limit_dao,get_teachers_name_dao from schema.teaSchema import RequestModel, ResponseModel t_router = APIRouter() def get_db(): db = Session() try: yield db finally: db.close() @t_router.get("/teachers",tags=['教师接口信息'],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("/teachers/{name}",tags=['教师接口信息'],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("/teachers",tags=['教师接口信息'],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("/teachers/{t_id}",tags=['教师接口信息'],summary='更新教师接口') def update_teachers(req:RequestModel,t_id:int,db=Depends(get_db),): rq= req.model_dump() n,m = update_teachers_dao(rq,db,t_id) return ResponseModel(total=n,msg=m) @t_router.delete("/teachers/{t_id}",tags=['教师接口信息'],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',tags=['文件接口信息'],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_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)