diff --git a/PythonProject/api/student_api.py b/PythonProject/api/student_api.py index 3341a3a..2295009 100644 --- a/PythonProject/api/student_api.py +++ b/PythonProject/api/student_api.py @@ -6,7 +6,7 @@ from util.database import get_db StudentAPI = APIRouter() -@StudentAPI.get('/students',response_model=list[StudentPageResponse],tags=['学⽣基本信息管理模块'],summary='学生信息查询接口',description='查询学生信息') +@StudentAPI.get('/students',response_model=StudentPageResponse,tags=['学⽣基本信息管理模块'],summary='学生信息查询接口',description='查询学生信息') def get_students(stu_id:int|None=None ,stu_name:str|None=None ,class_id:int|None=None @@ -22,12 +22,10 @@ def get_students(stu_id:int|None=None if not r: raise HTTPException(status_code=404,detail='学生不存在') - return {'code': 200 - , 'detail': 'ok' - , 'page': page - , 'page_size': page_size - , 'total': total - , 'data': r} + return StudentPageResponse(page=page, + page_size=page_size, + total=total, + data=r) @StudentAPI.put('/{stu_id}',tags=['学⽣基本信息管理模块'],summary='学生信息更新接口',description='更新学生信息') def update_students(s:StudentRequest diff --git a/PythonProject/dao/student_dao.py b/PythonProject/dao/student_dao.py index e896579..e1869bf 100644 --- a/PythonProject/dao/student_dao.py +++ b/PythonProject/dao/student_dao.py @@ -2,22 +2,23 @@ from fastapi import Depends from util.database import get_db from model.all_model import Student_Model from typing import List, Optional, Dict, Any +from datetime import datetime def add_student_dao(o,db): try: o1 = Student_Model( **o) db.add(o1) + db.commit() + stu_id=o1.stu_id + return db.query(Student_Model).filter(Student_Model.stu_id == stu_id).first() except: db.rollback() - return False - else: - db.commit() - return True + return None def delete_student_dao(stu_id,db): try: rows = db.query(Student_Model).filter(Student_Model.stu_id == stu_id,Student_Model.delete_status == 0)\ - .update({'delete_status':1}) + .update({'delete_status':1,'delete_time': datetime.now()}) db.commit() except: db.rollback() @@ -52,7 +53,7 @@ def get_student_dao(stu_id:Optional[int] q= q.filter(Student_Model.class_id == class_id,Student_Model.delete_status == 0) total = q.count() r = q.offset((page - 1) * page_size).limit(page_size).all() - return total,r + return r,total except: db.rollback() return [],0 diff --git a/PythonProject/schema/student_schema.py b/PythonProject/schema/student_schema.py index 2d9c631..8a16c95 100644 --- a/PythonProject/schema/student_schema.py +++ b/PythonProject/schema/student_schema.py @@ -6,7 +6,7 @@ from pydantic import BaseModel, field_serializer, field_validator,model_validato class StudentRequest(BaseModel): class_id:int |None = None - stu_name:str |None = None + stu_name:str age:int |None = None gender:str |None = None native_place:str |None = None @@ -78,5 +78,5 @@ class StudentPageResponse(BaseModel): detail: str = "ok" page: int page_size: int - total: int + totals: int data: List[StugetResponse] \ No newline at end of file