From 0089d681e9a3025ef72d00f8fa74828738d1c9a5 Mon Sep 17 00:00:00 2001 From: test1 Date: Mon, 21 Sep 2026 16:29:54 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E9=A9=AC=E7=9D=BF=E6=99=BA=E7=89=9B?= =?UTF-8?q?=E9=80=BC=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PythonProject/api/teacher_api.py | 18 +++++++----------- PythonProject/main.py | 8 ++++++++ 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/PythonProject/api/teacher_api.py b/PythonProject/api/teacher_api.py index 9cc1c56..41b4807 100644 --- a/PythonProject/api/teacher_api.py +++ b/PythonProject/api/teacher_api.py @@ -1,15 +1,11 @@ from fastapi import APIRouter,HTTPException -from fastapi.params import Depends - -from model.all_model import * from schema.teacher_schema import Teacher_ResponseModel, Teacher_RequestModel -from tmpl.work.util.database import get_db from dao.teacher_dao import * teacher_api=APIRouter() -@teacher_api.post("",response_model=Teacher_ResponseModel) -def add_teacher1(teacher:Teacher_RequestModel,session=Depends(get_db)): +@teacher_api.post("/",response_model=Teacher_ResponseModel) +def add_teacher(teacher:Teacher_RequestModel,session=Depends(get_db)): d=teacher.model_dump() r=add_teacher(req=d,session=session) if not r: @@ -17,15 +13,15 @@ def add_teacher1(teacher:Teacher_RequestModel,session=Depends(get_db)): return Teacher_ResponseModel(totals=1,data=d) -@teacher_api.get("",response_model=Teacher_ResponseModel) +@teacher_api.get("/",response_model=Teacher_ResponseModel) def get_teacher(id: int, session=Depends(get_db)): r = get_teacher(id=id, session=session) if not r: raise HTTPException(status_code=500, detail='查询异常!') -@teacher_api.put("",response_model=Teacher_ResponseModel) -def update_teacher1(id:int,teacher:Teacher_RequestModel,session=Depends(get_db)): +@teacher_api.put("/",response_model=Teacher_ResponseModel) +def update_teacher(id:int,teacher:Teacher_RequestModel,session=Depends(get_db)): d=teacher.model_dump() r=update_teacher(id=id,req=d,session=session) if not r: @@ -33,8 +29,8 @@ def update_teacher1(id:int,teacher:Teacher_RequestModel,session=Depends(get_db)) return {'code': 200, 'totals': r, 'detail': '更新成功'} -@teacher_api.delete("",response_model=Teacher_ResponseModel) -def delete_teacher1(id:int,session=Depends(get_db)): +@teacher_api.delete("/",response_model=Teacher_ResponseModel) +def delete_teacher(id:int,session=Depends(get_db)): r=delete_teacher(id=id,session=session) if not r: raise HTTPException(status_code=500,detail='删除异常!') diff --git a/PythonProject/main.py b/PythonProject/main.py index af9dc5c..8a9b02f 100644 --- a/PythonProject/main.py +++ b/PythonProject/main.py @@ -1,7 +1,15 @@ from fastapi import FastAPI from api.student_api import StudentAPI from api.statistics_api import StatisticsAPI +from api.teacher_api import teacher_api app = FastAPI() app.include_router(StudentAPI) app.include_router(StatisticsAPI) + +app.include_router(teacher_api) + + +if __name__ == '__main__': + import uvicorn + uvicorn.run("main:app",host='0.0.0.0',port=12310) \ No newline at end of file From 8b808a368178d8e6a0a42a9a704ac0c26cb48219 Mon Sep 17 00:00:00 2001 From: maruizhi <3088243241@qq.com> Date: Mon, 21 Sep 2026 16:45:33 +0800 Subject: [PATCH 2/4] mrz --- PythonProject/model/all_model.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/PythonProject/model/all_model.py b/PythonProject/model/all_model.py index a2be52c..c8904a8 100644 --- a/PythonProject/model/all_model.py +++ b/PythonProject/model/all_model.py @@ -10,6 +10,11 @@ class Student_Model(Base): , autoincrement=True ,comment='学生编号') + class_id = Column(Integer + ,ForeignKey('wl_class.class_id') + ,comment='班级编号' + ) + stu_name=Column(String(100),comment='学生姓名') age=Column(Integer,comment='年龄') @@ -49,12 +54,6 @@ class ClassManagement(Base): class_id= Column(Integer, primary_key=True, autoincrement=True,comment='班级编号') - stu_id = Column(Integer - ,ForeignKey('wl_student.stu_id') - ,nullable=False - ,comment='学生编号' - ) - class_name = Column(String(100), comment='班级姓名') start_class_date = Column(DATE,comment='开课时间') From b57f15a0e212c4e4987cdbff9fa5deacdb99a273 Mon Sep 17 00:00:00 2001 From: test1 Date: Mon, 21 Sep 2026 16:47:44 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E9=A9=AC=E7=9D=BF=E6=99=BA=E7=89=9B?= =?UTF-8?q?=E9=80=BC=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PythonProject/api/teacher_api.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/PythonProject/api/teacher_api.py b/PythonProject/api/teacher_api.py index 41b4807..45ff834 100644 --- a/PythonProject/api/teacher_api.py +++ b/PythonProject/api/teacher_api.py @@ -4,7 +4,7 @@ from dao.teacher_dao import * teacher_api=APIRouter() -@teacher_api.post("/",response_model=Teacher_ResponseModel) +@teacher_api.post("/",response_model=Teacher_ResponseModel,tags=['教师基本信息管理模块'],summary='新增教师接口') def add_teacher(teacher:Teacher_RequestModel,session=Depends(get_db)): d=teacher.model_dump() r=add_teacher(req=d,session=session) @@ -13,14 +13,14 @@ def add_teacher(teacher:Teacher_RequestModel,session=Depends(get_db)): return Teacher_ResponseModel(totals=1,data=d) -@teacher_api.get("/",response_model=Teacher_ResponseModel) +@teacher_api.get("/",response_model=Teacher_ResponseModel,tags=['教师基本信息管理模块'],summary='查询教师接口') def get_teacher(id: int, session=Depends(get_db)): r = get_teacher(id=id, session=session) if not r: raise HTTPException(status_code=500, detail='查询异常!') -@teacher_api.put("/",response_model=Teacher_ResponseModel) +@teacher_api.put("/",response_model=Teacher_ResponseModel,tags=['教师基本信息管理模块'],summary='更新教师接口') def update_teacher(id:int,teacher:Teacher_RequestModel,session=Depends(get_db)): d=teacher.model_dump() r=update_teacher(id=id,req=d,session=session) @@ -29,7 +29,7 @@ def update_teacher(id:int,teacher:Teacher_RequestModel,session=Depends(get_db)): return {'code': 200, 'totals': r, 'detail': '更新成功'} -@teacher_api.delete("/",response_model=Teacher_ResponseModel) +@teacher_api.delete("/",response_model=Teacher_ResponseModel,tags=['教师基本信息管理模块'],summary='删除教师接口') def delete_teacher(id:int,session=Depends(get_db)): r=delete_teacher(id=id,session=session) if not r: From 89763566a1bc25e5f3dc9f3ce9845280b6c88097 Mon Sep 17 00:00:00 2001 From: wolin_chenyulin001 <123@163.com> Date: Mon, 21 Sep 2026 16:48:27 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=B0=B1=E4=B8=9Aget=E6=AC=A1=E6=98=82?= =?UTF-8?q?=E7=AE=A1=E7=9A=84dao=E5=B1=82=E5=92=8Capi=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PythonProject/api/employment_api.py | 30 +++++++++++++++++ PythonProject/dao/employment_dao.py | 40 +++++++++++++++++++++++ PythonProject/schema/employment_schema.py | 14 +++++--- 3 files changed, 79 insertions(+), 5 deletions(-) diff --git a/PythonProject/api/employment_api.py b/PythonProject/api/employment_api.py index e69de29..68cc125 100644 --- a/PythonProject/api/employment_api.py +++ b/PythonProject/api/employment_api.py @@ -0,0 +1,30 @@ +from fastapi import FastAPI,APIRouter,Depends,HTTPException + +from dao import employment_dao +from dao.employment_dao import get_employment_dao +from schema.employment_schema import EmlpoymentRequest,EmploymentResponse +from model.all_model import ClassManagement,Employment_info +from util.database import get_db + +app = FastAPI() +@app.get('employment/students/{stu_id}',response_model=EmploymentResponse,summary='获取学生就业信息') +def get_emp_info1(stu_id: int,db=Depends(get_db)): + try: + if stu_id: + return employment_dao.get_employment_info() + except: + raise HTTPException(status_code=404, detail='就业信息不存在') + +@app.get('employment/class/{class_id}',summary='获取班级学生就业信息') +def get_emp_info2(class_id: int,db=Depends(get_db)): + try: + if class_id: + return employment_dao.get_employment_info() + except: + raise HTTPException(status_code=404, detail='就业信息不存在') + + + +@app.post('employment/students/{stu_id}') +def create_emp_info(stu_id: int,db=Depends(get_db)): + diff --git a/PythonProject/dao/employment_dao.py b/PythonProject/dao/employment_dao.py index e69de29..47275fb 100644 --- a/PythonProject/dao/employment_dao.py +++ b/PythonProject/dao/employment_dao.py @@ -0,0 +1,40 @@ + +from model.all_model import Employment_info, ClassManagement, Student_Model +from util.database import get_db +from schema.employment_schema import EmlpoymentRequest + +def get_employment_dao(stu_id,class_id,db): + q = db.query(Employment_info).\ + join(ClassManagement,ClassManagement.stu_id == Employment_info.stu_id).\ + filter(Employment_info.delete_status == 0).\ + filter(Student_Model.delete_status == 0).\ + filter(ClassManagement.delete_status == 0) + if stu_id is not None: + q = q.filter(Employment_info.stu_id == stu_id) + if class_id is not None: + q = q.filter(ClassManagement.class_id == class_id) + r = q.all() + if r: + return [{'emp_id':i.emp_id + ,'stu_id': i.stu_id + ,'stu_name':i.stu_name + ,'class_id':i.class_id + ,'email':i.email + ,'employment_opening_date':i.employment_opening_date + ,'offer_issuance_date':i.offer_issuance_date + ,'company_name':i.company_name + ,'company_address':i.company_address + ,'salary':i.salary + }for i in r + ] + +def add_employment_dao(e:EmlpoymentRequest,db,stu_id): + try: + e1 = Employment_info(**e) + db.add(e1) + except: + db.rollback() + return False + else: + db.commit() + return True diff --git a/PythonProject/schema/employment_schema.py b/PythonProject/schema/employment_schema.py index 47a153f..d353b40 100644 --- a/PythonProject/schema/employment_schema.py +++ b/PythonProject/schema/employment_schema.py @@ -1,12 +1,13 @@ from fastapi import Query,HTTPException from pydantic import BaseModel, field_validator -from datetime import datetime +from datetime import date +from typing import Optional class EmlpoymentRequest(BaseModel): stu_id: int=Query(ge=1) email: str|None - employment_opening_date:datetime - offer_issuance_date:datetime + employment_opening_date:date + offer_issuance_date:date company_name:str company_address:str|None salary:float @@ -21,10 +22,13 @@ class EmlpoymentRequest(BaseModel): class EmploymentResponse(BaseModel): code:int = 200 detail:str = 'OK' + emp_id:int stu_id: int + stu_name:Optional[str] = None + class_id:int email: str | None - employment_opening_date: datetime - offer_issuance_date: datetime + employment_opening_date: date + offer_issuance_date: date company_name: str company_address: str | None salary: float \ No newline at end of file