From b1081d37a9c0b3bebcb9d4ac8fd60c871942f69d Mon Sep 17 00:00:00 2001
From: geyuan <2732801331@qq.com>
Date: Sat, 19 Sep 2026 18:14:22 +0800
Subject: [PATCH 1/7] =?UTF-8?q?=E6=A1=86=E6=9E=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/.gitignore | 10 ++++++++++
.idea/inspectionProfiles/Project_Default.xml | 12 ++++++++++++
.idea/inspectionProfiles/profiles_settings.xml | 6 ++++++
.idea/learn_20260919_dome.iml | 12 ++++++++++++
.idea/misc.xml | 4 ++++
.idea/modules.xml | 8 ++++++++
.idea/student_manage_system.iml | 8 ++++++++
.idea/vcs.xml | 6 ++++++
api/__init__.py | 0
dao/__init__.py | 0
model/__init__.py | 0
schema/__init__.py | 0
12 files changed, 66 insertions(+)
create mode 100644 .idea/.gitignore
create mode 100644 .idea/inspectionProfiles/Project_Default.xml
create mode 100644 .idea/inspectionProfiles/profiles_settings.xml
create mode 100644 .idea/learn_20260919_dome.iml
create mode 100644 .idea/misc.xml
create mode 100644 .idea/modules.xml
create mode 100644 .idea/student_manage_system.iml
create mode 100644 .idea/vcs.xml
create mode 100644 api/__init__.py
create mode 100644 dao/__init__.py
create mode 100644 model/__init__.py
create mode 100644 schema/__init__.py
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..b6b1ecf
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,10 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
+# 已忽略包含查询文件的默认文件夹
+/queries/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..d81046c
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/learn_20260919_dome.iml b/.idea/learn_20260919_dome.iml
new file mode 100644
index 0000000..ea1b721
--- /dev/null
+++ b/.idea/learn_20260919_dome.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..dc9ea49
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..ad5a223
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/student_manage_system.iml b/.idea/student_manage_system.iml
new file mode 100644
index 0000000..8437fe6
--- /dev/null
+++ b/.idea/student_manage_system.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/__init__.py b/api/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dao/__init__.py b/dao/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/model/__init__.py b/model/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/schema/__init__.py b/schema/__init__.py
new file mode 100644
index 0000000..e69de29
From 7fc2dedee64defb2709a43a1c4cc975e04e1339b Mon Sep 17 00:00:00 2001
From: geyuan <2732801331@qq.com>
Date: Mon, 21 Sep 2026 11:30:04 +0800
Subject: [PATCH 2/7] =?UTF-8?q?=E8=80=81=E5=B8=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/misc.xml | 3 +++
api/__init__.py | 0
dao/__init__.py | 0
model/__init__.py | 0
schema/__init__.py | 0
5 files changed, 3 insertions(+)
delete mode 100644 api/__init__.py
delete mode 100644 dao/__init__.py
delete mode 100644 model/__init__.py
delete mode 100644 schema/__init__.py
diff --git a/.idea/misc.xml b/.idea/misc.xml
index dc9ea49..930139e 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,7 @@
+
+
+
\ No newline at end of file
diff --git a/api/__init__.py b/api/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/dao/__init__.py b/dao/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/model/__init__.py b/model/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/schema/__init__.py b/schema/__init__.py
deleted file mode 100644
index e69de29..0000000
From 12fb6a7e833e3eb94f19599c5e5f9f3aa72bd745 Mon Sep 17 00:00:00 2001
From: geyuan <2732801331@qq.com>
Date: Mon, 21 Sep 2026 16:28:55 +0800
Subject: [PATCH 3/7] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E8=80=81=E5=B8=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Teachers/api/__init__.py | 0
Teachers/api/tea_api.py | 36 ++++++++++++++++++++++
Teachers/dao/__init__.py | 0
Teachers/dao/tea_dao.py | 53 +++++++++++++++++++++++++++++++++
Teachers/database.py | 17 +++++++++++
Teachers/main.py | 16 ++++++++++
Teachers/model/__init__.py | 0
Teachers/model/tea_model.py | 39 ++++++++++++++++++++++++
Teachers/schema/__init__.py | 0
Teachers/schema/tea_request.py | 10 +++++++
Teachers/schema/tea_response.py | 7 +++++
11 files changed, 178 insertions(+)
create mode 100644 Teachers/api/__init__.py
create mode 100644 Teachers/api/tea_api.py
create mode 100644 Teachers/dao/__init__.py
create mode 100644 Teachers/dao/tea_dao.py
create mode 100644 Teachers/database.py
create mode 100644 Teachers/main.py
create mode 100644 Teachers/model/__init__.py
create mode 100644 Teachers/model/tea_model.py
create mode 100644 Teachers/schema/__init__.py
create mode 100644 Teachers/schema/tea_request.py
create mode 100644 Teachers/schema/tea_response.py
diff --git a/Teachers/api/__init__.py b/Teachers/api/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/Teachers/api/tea_api.py b/Teachers/api/tea_api.py
new file mode 100644
index 0000000..450bcde
--- /dev/null
+++ b/Teachers/api/tea_api.py
@@ -0,0 +1,36 @@
+from fastapi import APIRouter,Depends,HTTPException
+from Teachers.schema import *
+from Teachers.database import *
+from Teachers.model.tea_model import *
+from Teachers.dao.tea_dao import *
+from Teachers.schema.tea_request import TeaRequest
+from Teachers.schema.tea_response import TeaResponse
+
+tea_api = APIRouter(tags=['老师相关接口'])
+
+@tea_api.post('/tea',response_model=TeaResponse)
+def add_tea(tea: TeaRequest,db=Depends(get_db)):
+ r = add_tea_dao(tea.model_dump(),db)
+ if not r:
+ raise HTTPException(status_code=500,detail='添加失败!')
+ return TeaResponse(totals=1,date=tea.model_dump())
+@tea_api.get('/tea',response_model=TeaResponse)
+def get_tea(t:TeaRequest,db=Depends(get_db)): #开启会话窗口
+ r = get_tea_dao(t,db=db)
+ if not r:
+ raise HTTPException(status_code=404,detail='老师不存在')
+ return TeaResponse(totals=len(r),date=r)
+@tea_api.delete('tea/{id}')
+def delete_tea(id:int|None,db=Depends(get_db)):
+ r = delete_tea_dao(id,db)
+ if not r:
+ raise HTTPException(status_code=500,detail='删除失败!')
+ return {'detail':'删除成功!'}
+
+@tea_api.put('tea/{id}')
+def update_tea(id:int,tea:TeaRequest,db=Depends(get_db)):
+ t = tea.model_dump(exclude_unset= True)
+ r = update_tea_dao(id=id,update_data=t,db=db)
+ if not r:
+ raise HTTPException(status_code=404,detail='老师不存在')
+ return {'detail':'修改成功'}
diff --git a/Teachers/dao/__init__.py b/Teachers/dao/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/Teachers/dao/tea_dao.py b/Teachers/dao/tea_dao.py
new file mode 100644
index 0000000..6015b03
--- /dev/null
+++ b/Teachers/dao/tea_dao.py
@@ -0,0 +1,53 @@
+from Teachers.model.tea_model import Tea
+
+#增加
+def add_tea_dao(t,db):
+ try:
+ t1 = Tea(**t)
+ db.add(t1)
+ except:
+ db.rollback()
+ return False
+ else:
+ db.commit()
+ return True
+
+#更新
+def update_tea_dao(id,update_data,db):
+ try:
+ rows = db.query(Tea).filter(Tea.tea_id == id,Tea.is_delete == False)(update_data)
+ except:
+ db.rollback()
+ return False
+ else:
+ db.commit()
+ return rows
+
+#查询
+def get_tea_dao(t,db):
+ query = db.query(Tea).filter(Tea.is_delete == False)
+ if t.tea_id:
+ query = query.filter(Tea.tea_id == t.tea_id)
+ if t.tea_name:
+ query = query.filter(Tea.tea_name == t.tea_name)
+ if t.tea_sex:
+ query = query.filter(Tea.tea_sex == t.tea_sex)
+ if t.claa_id:
+ query = query.filter(Tea.class_id == t.claa_id)
+ if t.class_sub:
+ query = query.filter(Tea.class_sub == t.class_sub)
+ r = query.all()
+ return [{'tea_id':i.tea_id,'tea_name':i.tea_name,'class_id':i.class_id,'class_sub':i.class_sub,'tea.sex':i.tea_sex} for i in r]
+
+#删除
+def delete_tea_dao(id,db):
+ try:
+ row = db.query(Tea).filter(Tea.tea_id == id).delete()
+ except:
+ db.rollback()
+ row = 0
+ else:
+ db.commit()
+ return row
+
+
diff --git a/Teachers/database.py b/Teachers/database.py
new file mode 100644
index 0000000..84a5fe0
--- /dev/null
+++ b/Teachers/database.py
@@ -0,0 +1,17 @@
+from sqlalchemy import *
+from sqlalchemy.orm import sessionmaker,declarative_base
+
+db_tea = 'mysql+pymysql://root:123456@127.0.0.1:3306/ai0824?charset=utf8mb4'
+engine1 = create_engine(db_tea)
+
+Base = declarative_base()
+Session = sessionmaker(bind=engine1
+ ,autoflush = False
+ ,autocommit = False)
+def get_db():
+ db = Session()
+ try:
+ yield db
+ finally:
+ db.close()
+Base.metadata.create_all(engine1)
\ No newline at end of file
diff --git a/Teachers/main.py b/Teachers/main.py
new file mode 100644
index 0000000..1ec14a3
--- /dev/null
+++ b/Teachers/main.py
@@ -0,0 +1,16 @@
+from fastapi import FastAPI
+from Teachers.model.tea_model import *
+from api.tea_api import tea_api
+app = FastAPI()
+app.include_router(tea_api)
+
+Base.metadata.create_all(engine1)
+
+if __name__ == "__main__":
+ import uvicorn
+ uvicorn.run('main:app', host='0.0.0.0', port=55000)
+ """
+ IPv4 地址 . . . . . . . . . . . . : 192.168.1.51
+ 子网掩码 . . . . . . . . . . . . : 255.255.255.0
+ 默认网关. . . . . . . . . . . . . : 192.168.1.1
+ """
\ No newline at end of file
diff --git a/Teachers/model/__init__.py b/Teachers/model/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/Teachers/model/tea_model.py b/Teachers/model/tea_model.py
new file mode 100644
index 0000000..93a5c02
--- /dev/null
+++ b/Teachers/model/tea_model.py
@@ -0,0 +1,39 @@
+from Teachers.database import *
+from datetime import datetime
+from sqlalchemy import *
+import enum
+
+class Gender(str,enum.Enum):
+ m = '男'
+ f = '女'
+
+class Tea(Base):
+ __tablename__ = 'order_info_tea'
+ tea_id = Column(Integer
+ , primary_key=True
+ ,nullable=False
+ ,autoincrement=True
+ ,comment='老师id')
+ tea_name = Column(String(50)
+ ,nullable=False
+ ,comment='老师姓名')
+ tea_sex = Column(Enum (Gender),default='未知'
+ ,comment='老师性别')
+ class_id = Column(Integer
+ ,nullable=False
+ ,comment='班级id')
+ class_sub = Column(String(50)
+ ,nullable=False
+ ,comment='教学科目')
+ create_date = Column(DateTime
+ ,default=datetime.now
+ ,comment='创建时间')
+ update_date = Column(DateTime
+ ,onupdate=datetime.now
+ ,comment='更新时间')
+ delete_data = Column(DateTime
+ ,onupdate=datetime.now
+ ,comment='删除时间')
+ is_delete = Column(Integer,default=False,comment='是否删除')
+
+
diff --git a/Teachers/schema/__init__.py b/Teachers/schema/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/Teachers/schema/tea_request.py b/Teachers/schema/tea_request.py
new file mode 100644
index 0000000..0797917
--- /dev/null
+++ b/Teachers/schema/tea_request.py
@@ -0,0 +1,10 @@
+from pydantic import BaseModel
+from Teachers.model.tea_model import *
+class TeaRequest(BaseModel):
+ class_id: int|None = None
+ tea_id: int|None = None
+ tea_name: str|None = None
+ tea_sex: Gender|None = None
+ class_sub: str|None = None
+
+
diff --git a/Teachers/schema/tea_response.py b/Teachers/schema/tea_response.py
new file mode 100644
index 0000000..88437d0
--- /dev/null
+++ b/Teachers/schema/tea_response.py
@@ -0,0 +1,7 @@
+from pydantic import BaseModel
+class TeaResponse(BaseModel):
+ code: int = 200
+ detail: str = 'OK'
+ totals:int = 0
+ date: str |dict|tuple|list
+
From b28430257cc0a93b5ca68a94eeaf40408afdaed3 Mon Sep 17 00:00:00 2001
From: geyuan <2732801331@qq.com>
Date: Mon, 21 Sep 2026 16:53:08 +0800
Subject: [PATCH 4/7] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E9=80=BB=E8=BE=91?=
=?UTF-8?q?=E5=88=A0=E9=99=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Teachers/dao/tea_dao.py | 9 +++++++--
Teachers/model/tea_model.py | 4 +---
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/Teachers/dao/tea_dao.py b/Teachers/dao/tea_dao.py
index 6015b03..20a63a0 100644
--- a/Teachers/dao/tea_dao.py
+++ b/Teachers/dao/tea_dao.py
@@ -1,4 +1,5 @@
from Teachers.model.tea_model import Tea
+from datetime import datetime
#增加
def add_tea_dao(t,db):
@@ -15,7 +16,8 @@ def add_tea_dao(t,db):
#更新
def update_tea_dao(id,update_data,db):
try:
- rows = db.query(Tea).filter(Tea.tea_id == id,Tea.is_delete == False)(update_data)
+ rows = db.query(Tea).filter(Tea.tea_id == id
+ ,Tea.is_delete == False).update(update_data)
except:
db.rollback()
return False
@@ -42,10 +44,13 @@ def get_tea_dao(t,db):
#删除
def delete_tea_dao(id,db):
try:
- row = db.query(Tea).filter(Tea.tea_id == id).delete()
+ row = db.query(Tea).filter(Tea.tea_id == id
+ ,Tea.is_delete == False
+ ).update({'is_delete':True,'delete_time':datetime.now()})
except:
db.rollback()
row = 0
+ return row
else:
db.commit()
return row
diff --git a/Teachers/model/tea_model.py b/Teachers/model/tea_model.py
index 93a5c02..dd37b1f 100644
--- a/Teachers/model/tea_model.py
+++ b/Teachers/model/tea_model.py
@@ -31,9 +31,7 @@ class Tea(Base):
update_date = Column(DateTime
,onupdate=datetime.now
,comment='更新时间')
- delete_data = Column(DateTime
- ,onupdate=datetime.now
- ,comment='删除时间')
is_delete = Column(Integer,default=False,comment='是否删除')
+ delete_time = Column(DateTime)
From b9134b6ef1b39ee3cbf33b1d796d8a5f16ed945a Mon Sep 17 00:00:00 2001
From: geyuan <2732801331@qq.com>
Date: Mon, 21 Sep 2026 19:36:29 +0800
Subject: [PATCH 5/7] =?UTF-8?q?=E6=94=B9=E6=8E=89=E4=B8=80=E4=BA=9B?=
=?UTF-8?q?=E6=8A=A5=E9=94=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/dataSources.xml | 12 ++++++++++++
Teachers/api/tea_api.py | 20 ++++++++++----------
Teachers/dao/tea_dao.py | 22 +++++++++++-----------
Teachers/model/tea_model.py | 4 ++--
Teachers/schema/tea_request.py | 10 +++++++++-
Teachers/schema/tea_response.py | 3 ++-
6 files changed, 46 insertions(+), 25 deletions(-)
create mode 100644 .idea/dataSources.xml
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000..ba3e0d2
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ mysql.8
+ true
+ com.mysql.cj.jdbc.Driver
+ jdbc:mysql://localhost:3306
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/Teachers/api/tea_api.py b/Teachers/api/tea_api.py
index 450bcde..3613f6b 100644
--- a/Teachers/api/tea_api.py
+++ b/Teachers/api/tea_api.py
@@ -3,32 +3,32 @@ from Teachers.schema import *
from Teachers.database import *
from Teachers.model.tea_model import *
from Teachers.dao.tea_dao import *
-from Teachers.schema.tea_request import TeaRequest
+from Teachers.schema.tea_request import TeaRequest,NewTeaRequest
from Teachers.schema.tea_response import TeaResponse
tea_api = APIRouter(tags=['老师相关接口'])
-@tea_api.post('/tea',response_model=TeaResponse)
+@tea_api.post('/tea',response_model=TeaResponse,summary='新增老师',description='输入新增的老师信息,除去姓名外可以为空')
def add_tea(tea: TeaRequest,db=Depends(get_db)):
r = add_tea_dao(tea.model_dump(),db)
if not r:
raise HTTPException(status_code=500,detail='添加失败!')
- return TeaResponse(totals=1,date=tea.model_dump())
-@tea_api.get('/tea',response_model=TeaResponse)
-def get_tea(t:TeaRequest,db=Depends(get_db)): #开启会话窗口
- r = get_tea_dao(t,db=db)
+ return TeaResponse(totals=1,data=tea.model_dump())
+@tea_api.get('/tea',response_model=TeaResponse,summary='查询老师',description='任意选择输入的信息数量,不输入则查询全部老师')
+def get_tea(t:TeaRequest=Depends(),db=Depends(get_db)): #开启会话窗口
+ r = get_tea_dao(t.model_dump(),db=db)
if not r:
raise HTTPException(status_code=404,detail='老师不存在')
- return TeaResponse(totals=len(r),date=r)
-@tea_api.delete('tea/{id}')
+ return TeaResponse(totals=len(r), data=r)
+@tea_api.delete('/tea/{id}',summary='删除老师',description='输入删除的老师id')
def delete_tea(id:int|None,db=Depends(get_db)):
r = delete_tea_dao(id,db)
if not r:
raise HTTPException(status_code=500,detail='删除失败!')
return {'detail':'删除成功!'}
-@tea_api.put('tea/{id}')
-def update_tea(id:int,tea:TeaRequest,db=Depends(get_db)):
+@tea_api.put('/tea/{id}',summary='修改老师信息',description='输入更改的信息,老师的姓名和性别不能为空,其余可以为空')
+def update_tea(id:int,tea:NewTeaRequest,db=Depends(get_db)):
t = tea.model_dump(exclude_unset= True)
r = update_tea_dao(id=id,update_data=t,db=db)
if not r:
diff --git a/Teachers/dao/tea_dao.py b/Teachers/dao/tea_dao.py
index 20a63a0..91d4d97 100644
--- a/Teachers/dao/tea_dao.py
+++ b/Teachers/dao/tea_dao.py
@@ -28,16 +28,16 @@ def update_tea_dao(id,update_data,db):
#查询
def get_tea_dao(t,db):
query = db.query(Tea).filter(Tea.is_delete == False)
- if t.tea_id:
- query = query.filter(Tea.tea_id == t.tea_id)
- if t.tea_name:
- query = query.filter(Tea.tea_name == t.tea_name)
- if t.tea_sex:
- query = query.filter(Tea.tea_sex == t.tea_sex)
- if t.claa_id:
- query = query.filter(Tea.class_id == t.claa_id)
- if t.class_sub:
- query = query.filter(Tea.class_sub == t.class_sub)
+ if t.get('tea_id'):
+ query = query.filter(Tea.tea_id == t.get('tea_id') )
+ if t.get('tea_name'):
+ query = query.filter(Tea.tea_name == t.get('tea_name') )
+ if t.get("tea_sex"):
+ query = query.filter(Tea.tea_sex == t.get('tea_sex') )
+ if t.get('class_id'):
+ query = query.filter(Tea.class_id == t.get('claa_id') )
+ if t.get('class_sub'):
+ query = query.filter(Tea.class_sub == t.get('class_sub') )
r = query.all()
return [{'tea_id':i.tea_id,'tea_name':i.tea_name,'class_id':i.class_id,'class_sub':i.class_sub,'tea.sex':i.tea_sex} for i in r]
@@ -50,7 +50,7 @@ def delete_tea_dao(id,db):
except:
db.rollback()
row = 0
- return row
+ return
else:
db.commit()
return row
diff --git a/Teachers/model/tea_model.py b/Teachers/model/tea_model.py
index dd37b1f..6e956ef 100644
--- a/Teachers/model/tea_model.py
+++ b/Teachers/model/tea_model.py
@@ -8,7 +8,7 @@ class Gender(str,enum.Enum):
f = '女'
class Tea(Base):
- __tablename__ = 'order_info_tea'
+ __tablename__ = 'teachers_info'
tea_id = Column(Integer
, primary_key=True
,nullable=False
@@ -17,7 +17,7 @@ class Tea(Base):
tea_name = Column(String(50)
,nullable=False
,comment='老师姓名')
- tea_sex = Column(Enum (Gender),default='未知'
+ tea_sex = Column(Enum(Gender),default='未知'
,comment='老师性别')
class_id = Column(Integer
,nullable=False
diff --git a/Teachers/schema/tea_request.py b/Teachers/schema/tea_request.py
index 0797917..d89847c 100644
--- a/Teachers/schema/tea_request.py
+++ b/Teachers/schema/tea_request.py
@@ -1,10 +1,18 @@
from pydantic import BaseModel
from Teachers.model.tea_model import *
+
+#查询使用请求体
class TeaRequest(BaseModel):
- class_id: int|None = None
tea_id: int|None = None
tea_name: str|None = None
tea_sex: Gender|None = None
+ class_id: int | None = None
class_sub: str|None = None
+#更新、新增使用请求体(无法覆盖)
+class NewTeaRequest(BaseModel):
+ tea_name: str
+ tea_sex: Gender
+ class_id: int | None
+ class_sub: str|None
diff --git a/Teachers/schema/tea_response.py b/Teachers/schema/tea_response.py
index 88437d0..ee7f554 100644
--- a/Teachers/schema/tea_response.py
+++ b/Teachers/schema/tea_response.py
@@ -1,7 +1,8 @@
from pydantic import BaseModel
+
class TeaResponse(BaseModel):
code: int = 200
detail: str = 'OK'
totals:int = 0
- date: str |dict|tuple|list
+ data: str |dict|tuple|list
From c996fe00f058d7e782242276a7b51a8a3efeb9a0 Mon Sep 17 00:00:00 2001
From: geyuan <2732801331@qq.com>
Date: Mon, 21 Sep 2026 21:48:36 +0800
Subject: [PATCH 6/7] =?UTF-8?q?=E5=A2=9E=E6=94=B9=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Teachers/dao/tea_dao.py | 35 +++++++++++++++++++++++-----------
Teachers/database.py | 2 +-
Teachers/model/tea_model.py | 27 ++++++++++++++++++--------
Teachers/schema/tea_request.py | 29 ++++++++++++++++++++--------
4 files changed, 65 insertions(+), 28 deletions(-)
diff --git a/Teachers/dao/tea_dao.py b/Teachers/dao/tea_dao.py
index 91d4d97..9b39829 100644
--- a/Teachers/dao/tea_dao.py
+++ b/Teachers/dao/tea_dao.py
@@ -16,7 +16,7 @@ def add_tea_dao(t,db):
#更新
def update_tea_dao(id,update_data,db):
try:
- rows = db.query(Tea).filter(Tea.tea_id == id
+ rows = db.query(Tea).filter(Tea.id == id
,Tea.is_delete == False).update(update_data)
except:
db.rollback()
@@ -28,23 +28,36 @@ def update_tea_dao(id,update_data,db):
#查询
def get_tea_dao(t,db):
query = db.query(Tea).filter(Tea.is_delete == False)
- if t.get('tea_id'):
- query = query.filter(Tea.tea_id == t.get('tea_id') )
- if t.get('tea_name'):
- query = query.filter(Tea.tea_name == t.get('tea_name') )
- if t.get("tea_sex"):
- query = query.filter(Tea.tea_sex == t.get('tea_sex') )
+ if t.get('id'):
+ query = query.filter(Tea.id == t.get('id') )
+ if t.get('name'):
+ query = query.filter(Tea.name == t.get('name') )
+ if t.get("sex"):
+ query = query.filter(Tea.sex == t.get('sex') )
if t.get('class_id'):
query = query.filter(Tea.class_id == t.get('claa_id') )
- if t.get('class_sub'):
- query = query.filter(Tea.class_sub == t.get('class_sub') )
+ if t.get('sub'):
+ query = query.filter(Tea.sub == t.get('sub') )
+ if t.get('home_place'):
+ query = query.filter(Tea.home_place == t.get('home_place') )
+ if t.get('specialty'):
+ query = query.filter(Tea.specialty == t.get('specialty') )
+ if t.get('start_time'):
+ query = query.filter(Tea.start_time == t.get('start_time') )
+ if t. get('work_experience'):
+ query = query.filter(Tea.work_experience == t.get('work_experience') )
+ if t.get('education'):
+ query = query.filter(Tea.education == t.get('education') )
+ if t.get('college'):
+ query = query.filter(Tea.collage == t.get('college') )
r = query.all()
- return [{'tea_id':i.tea_id,'tea_name':i.tea_name,'class_id':i.class_id,'class_sub':i.class_sub,'tea.sex':i.tea_sex} for i in r]
+ return [{'id':i.id,'name':i.name,'class_id':i.class_id,'sub':i.sub,'tea.sex':i.sex,'home_place':i.home_place
+ ,'specialty':i.specialty,'start_time':i.start_time,'work_experience':i.work_experience,'college':i.college} for i in r]
#删除
def delete_tea_dao(id,db):
try:
- row = db.query(Tea).filter(Tea.tea_id == id
+ row = db.query(Tea).filter(Tea.id == id
,Tea.is_delete == False
).update({'is_delete':True,'delete_time':datetime.now()})
except:
diff --git a/Teachers/database.py b/Teachers/database.py
index 84a5fe0..07ef505 100644
--- a/Teachers/database.py
+++ b/Teachers/database.py
@@ -1,7 +1,7 @@
from sqlalchemy import *
from sqlalchemy.orm import sessionmaker,declarative_base
-db_tea = 'mysql+pymysql://root:123456@127.0.0.1:3306/ai0824?charset=utf8mb4'
+db_tea = 'mysql+pymysql://root:123456@127.0.0.1:3306/student_manage_system?charset=utf8mb4'
engine1 = create_engine(db_tea)
Base = declarative_base()
diff --git a/Teachers/model/tea_model.py b/Teachers/model/tea_model.py
index 6e956ef..08b89f6 100644
--- a/Teachers/model/tea_model.py
+++ b/Teachers/model/tea_model.py
@@ -8,23 +8,34 @@ class Gender(str,enum.Enum):
f = '女'
class Tea(Base):
- __tablename__ = 'teachers_info'
- tea_id = Column(Integer
+ __tablename__ = 'teachers'
+ id = Column(Integer
, primary_key=True
,nullable=False
,autoincrement=True
- ,comment='老师id')
- tea_name = Column(String(50)
+ ,comment='id')
+ name = Column(String(50)
,nullable=False
- ,comment='老师姓名')
- tea_sex = Column(Enum(Gender),default='未知'
- ,comment='老师性别')
+ ,comment='姓名')
+ sex = Column(Enum(Gender),default='未知'
+ ,comment='性别')
class_id = Column(Integer
,nullable=False
,comment='班级id')
- class_sub = Column(String(50)
+ sub = Column(String(50)
,nullable=False
,comment='教学科目')
+ home_place = Column(String(50)
+ ,comment='家乡')
+ specialty = Column(String(50)
+ ,comment='专业')
+ start_time = Column(DateTime,comment='入职时间')
+ work_experience = Column(String(50)
+ ,comment='工作经验')
+ education = Column(String(50)
+ ,comment='学历')
+ collage = Column(String(50)
+ ,comment='毕业院校')
create_date = Column(DateTime
,default=datetime.now
,comment='创建时间')
diff --git a/Teachers/schema/tea_request.py b/Teachers/schema/tea_request.py
index d89847c..2a7b468 100644
--- a/Teachers/schema/tea_request.py
+++ b/Teachers/schema/tea_request.py
@@ -3,16 +3,29 @@ from Teachers.model.tea_model import *
#查询使用请求体
class TeaRequest(BaseModel):
- tea_id: int|None = None
- tea_name: str|None = None
- tea_sex: Gender|None = None
+ id: int|None = None
+ name: str|None = None
+ sex: Gender|None = None
class_id: int | None = None
- class_sub: str|None = None
+ sub: str|None = None
+ home_place: str|None = None
+ collage: str|None = None
+ education: str|None = None
+ work_experience: str|None = None
+ start_time: str|None = None
+ Speciality: str|None = None
+
#更新、新增使用请求体(无法覆盖)
class NewTeaRequest(BaseModel):
- tea_name: str
- tea_sex: Gender
- class_id: int | None
- class_sub: str|None
+ name: str | None = None
+ sex: Gender | None = None
+ class_id: int | None = None
+ sub: str | None = None
+ home_place: str | None = None
+ collage: str | None = None
+ education: str | None = None
+ work_experience: str | None = None
+ start_time: str | None = None
+ Speciality: str | None = None
From 2c969c7b9c38fbef2c84784fce4f33e51a5ecf74 Mon Sep 17 00:00:00 2001
From: geyuan <2732801331@qq.com>
Date: Mon, 21 Sep 2026 22:22:32 +0800
Subject: [PATCH 7/7] =?UTF-8?q?=E6=94=B9buge?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Teachers/api/tea_api.py | 2 +-
Teachers/dao/tea_dao.py | 11 ++++++-----
Teachers/model/tea_model.py | 2 +-
Teachers/schema/tea_request.py | 8 ++++----
4 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/Teachers/api/tea_api.py b/Teachers/api/tea_api.py
index 3613f6b..da9519f 100644
--- a/Teachers/api/tea_api.py
+++ b/Teachers/api/tea_api.py
@@ -9,7 +9,7 @@ from Teachers.schema.tea_response import TeaResponse
tea_api = APIRouter(tags=['老师相关接口'])
@tea_api.post('/tea',response_model=TeaResponse,summary='新增老师',description='输入新增的老师信息,除去姓名外可以为空')
-def add_tea(tea: TeaRequest,db=Depends(get_db)):
+def add_tea(tea: NewTeaRequest,db=Depends(get_db)):
r = add_tea_dao(tea.model_dump(),db)
if not r:
raise HTTPException(status_code=500,detail='添加失败!')
diff --git a/Teachers/dao/tea_dao.py b/Teachers/dao/tea_dao.py
index 9b39829..ce110c6 100644
--- a/Teachers/dao/tea_dao.py
+++ b/Teachers/dao/tea_dao.py
@@ -14,16 +14,17 @@ def add_tea_dao(t,db):
return True
#更新
-def update_tea_dao(id,update_data,db):
+def add_tea_dao(t, db):
try:
- rows = db.query(Tea).filter(Tea.id == id
- ,Tea.is_delete == False).update(update_data)
- except:
+ t1 = Tea(**t)
+ db.add(t1)
+ except Exception as e:
db.rollback()
+ print('新增失败原因:', e)
return False
else:
db.commit()
- return rows
+ return True
#查询
def get_tea_dao(t,db):
diff --git a/Teachers/model/tea_model.py b/Teachers/model/tea_model.py
index 08b89f6..68a09c4 100644
--- a/Teachers/model/tea_model.py
+++ b/Teachers/model/tea_model.py
@@ -42,7 +42,7 @@ class Tea(Base):
update_date = Column(DateTime
,onupdate=datetime.now
,comment='更新时间')
- is_delete = Column(Integer,default=False,comment='是否删除')
+ is_delete = Column(Boolean,default=False,comment='是否删除')
delete_time = Column(DateTime)
diff --git a/Teachers/schema/tea_request.py b/Teachers/schema/tea_request.py
index 2a7b468..2bf3165 100644
--- a/Teachers/schema/tea_request.py
+++ b/Teachers/schema/tea_request.py
@@ -13,19 +13,19 @@ class TeaRequest(BaseModel):
education: str|None = None
work_experience: str|None = None
start_time: str|None = None
- Speciality: str|None = None
+ specialty: str|None = None
#更新、新增使用请求体(无法覆盖)
class NewTeaRequest(BaseModel):
name: str | None = None
- sex: Gender | None = None
+ sex: Gender
class_id: int | None = None
sub: str | None = None
home_place: str | None = None
collage: str | None = None
education: str | None = None
work_experience: str | None = None
- start_time: str | None = None
- Speciality: str | None = None
+ start_time: datetime | None = None
+ specialty: str | None = None