Files
StuManagerSys/api/th_api.py
T

60 lines
2.3 KiB
Python

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)