添加注释

This commit is contained in:
2026-09-21 17:05:10 +08:00
parent 2bc1e58047
commit acf5eb1441
4 changed files with 115 additions and 105 deletions
+39 -33
View File
@@ -8,71 +8,77 @@ CURD=APIRouter()
@CURD.get('/emp',tags=['查询就业信息'])
def get_stuinfo(
def get_stuinfo( #查询学生就业信息
stuname:str| None = None
,compname:str|None=None
,min_salary:int=0
,max_salary:int|None=None
,db=Depends(get_db)
):
r=get_emp_dao(
): #查询条件
r=get_emp_dao( #调用函数
stuname,
compname,
db,
min_salary,
max_salary)
max_salary
)
if r:
return r
raise HTTPException(status_code=404, detail='名单不存在!')
return r #成功返回
raise HTTPException(status_code=404, detail='名单不存在!') #失败返回错误信息
@CURD.post('/emp',response_model=EmpResponse,tags=['新增就业信息'])
def add_stuinfo(
def add_stuinfo( #新增学生就业信息
p:PostRequest,db=Depends(get_db)
):
d=p.model_dump()
r=add_employment_dao(o=d,db=db)
): #调用请求体
d=p.model_dump() #解析成字典
r=add_employment_dao(o=d,db=db) #调用函数
if not r:
raise HTTPException(status_code=500, detail='服务器繁忙,请稍后添加!')
return EmpResponse(totals=1, data=d)
raise HTTPException(status_code=500, detail='服务器繁忙,请稍后添加!') #失败返回错误
return EmpResponse(totals=1, data=d) #成功返回响应体
@CURD.post('/emp/company',response_model=CompResponse,tags=['新增公司信息'])
def add_company(c:CompRequest,db=Depends(get_db)):
d = c.model_dump()
r = add_company_dao(o=d, db=db)
def add_company( #新增公司表信息
c:CompRequest,db=Depends(get_db)
):
d = c.model_dump() #解析
r = add_company_dao(o=d, db=db) #调用添加公司函数
if not r:
raise HTTPException(status_code=500, detail='服务器繁忙,请稍后添加!')
return CompResponse(totals=1, data=d)
raise HTTPException(status_code=500, detail='服务器繁忙,请稍后添加!') #失败返回错误信息
return CompResponse(totals=1, data=d) #成功返回响应体
@CURD.post('/emp/company/address',response_model=AddResponse,tags=['新增公司所在区域'])
def add_address(
def add_address( #新增公司地址区域信息
add:AddRequest,db=Depends(get_db)
):
d = add.model_dump()
r = add_address_dao(o=d, db=db)
d = add.model_dump() #解析
r = add_address_dao(o=d, db=db) #调用添加地址函数
if not r:
raise HTTPException(status_code=500, detail='服务器繁忙,请稍后添加!')
return AddResponse(totals=1, data=d)
raise HTTPException(status_code=500, detail='服务器繁忙,请稍后添加!') #失败返回错误信息
return AddResponse(totals=1, data=d) #成功返回响应体
@CURD.put('/emp',tags=['更改就业信息'])
def updata_stuinfo(up:PostRequest
def updata_stuinfo( #更新数据模块
up:PostRequest
,id:int
,db=Depends(get_db)
):
d = up.model_dump(exclude_unset=True)
r = update_emp_dao(id=id, update_data=d, db=db)
): #根据id选择对象
d = up.model_dump(exclude_unset=True) #解析
r = update_emp_dao(id=id, update_data=d, db=db) #调用更新函数
if not r:
raise HTTPException(status_code=500, detail='没有更新!')
return {'code': 200, 'totals': r, 'detail': '更新成功'}
raise HTTPException(status_code=500, detail='没有更新!') #失败返回错误信息
return {'code': 200, 'totals': r, 'detail': '更新成功'} #成功返回信息
@CURD.delete('/emp/{id}',tags=['删除就业信息'])
def delete_stuinfo(id:int
,db=Depends(get_db)):
rows = delete_emp_dao(id, db)
def delete_stuinfo( #删除模块
id:int
,db=Depends(get_db)
): #根据id选择对象
rows = delete_emp_dao(id, db) #调用删除函数
if not rows:
raise HTTPException(status_code=500, detail='没有删除!')
return {'code': 200, 'totals': rows, 'detail': '删除成功'}
raise HTTPException(status_code=500, detail='没有删除!') #失败返回错误信息
return {'code': 200, 'totals': rows, 'detail': '删除成功'} #成功返回信息
+47 -44
View File
@@ -1,61 +1,62 @@
import like
from model import Employments,Address,Company
def add_employment_dao(o,db):
def add_employment_dao(o,db): #新增就业信息函数
try:
# r = db.query(Employments).filter(Employments.id == o['id'] ).all()
o.pop('id', None)
o1 = Employments( **o)
db.add(o1)
# r = db.query(Employments).filter(Employments.id == o['id'] ).all() #
o.pop('id', None) #摘除id字段,自增字段无需手动添加
o1 = Employments( **o) #实例化参数
db.add(o1) #添加数据进入表
except Exception as e:
except Exception as e: #失败返回
print(f'添加失败,{e}')
db.rollback()
db.rollback() #回滚数据
return False
else:
db.commit()
db.commit() #提交事务,永久保存
return True
def add_company_dao(o,db):
def add_company_dao(o,db): #添加公司信息函数
try:
o.pop('id', None)
o1 = Company( **o)
db.add(o1)
except Exception as e:
o.pop('id', None) #摘除id字段,自增字段无需手动添加
o1 = Company( **o) #实例化参数
db.add(o1) #添加数据进入表
except Exception as e: #失败返回
print(f'添加失败,{e}')
db.rollback()
db.rollback() #回滚数据
return False
else:
db.commit()
db.commit() #提交事务,永久保存
return True
def add_address_dao(o,db):
def add_address_dao(o,db): #添加地址区域信息函数
try:
o.pop('id', None)
o1 = Address( **o)
db.add(o1)
except Exception as e:
o.pop('id', None) #摘除id字段,自增字段无需手动添加
o1 = Address( **o) #实例化参数
db.add(o1) #添加数据进入表
except Exception as e: #失败返回
print(f'添加失败,{e}')
db.rollback()
db.rollback() #回滚数据
return False
else:
db.commit()
db.commit() #提交事务,永久保存
return True
def update_emp_dao(id,update_data,db):
try: # 数据更新是有返回值的,返回的是影响的行数
rows = db.query( Employments ).filter( Employments.id == id ).update( update_data )
def update_emp_dao(id,update_data,db): #更新数据函数
try:
rows = db.query( Employments )\
.filter( Employments.id == id )\
.update( update_data ) #更新条件匹配id
except Exception as e:
print(f'更新失败,{e}')
db.rollback()
print(f'更新失败,{e}') #返回失败信息
db.rollback() #数据回滚
return False
else:
db.commit()
db.commit() #提交事务,永久保存
return rows
def get_emp_dao(
def get_emp_dao( #获取学生就业信息函数
# stuid,
stuname
,compname
@@ -64,22 +65,22 @@ def get_emp_dao(
, max_salary: int | None = None
# ,page
# ,page_size
):
): #根据选择条件获取信息
q = db.query(Employments,Company.compname,Address.somewhere)\
.join(Company,Employments.company_id==Company.id)\
.join(Address,Company.address_id==Address.id)\
.filter(Employments.is_deleted == 0)
.filter(Employments.is_deleted == 0) #连接公司表和地址表,筛选未被删除信息
# if stuid:
# q = q.filter( Employments.id == stuid )
if stuname:
if stuname: #根据学生姓名筛选
q = q.filter( Employments.stuname == stuname )
if compname:
if compname: #根据公司姓名筛选
q=q.filter(Company.compname.like(f'%{compname}%'))
# r = q.offset( (page-1)*page_size ).limit( page_size ).all()
if min_salary is not None:
if min_salary is not None: #根据最小薪资筛选
q = q.filter(Employments.salary >= min_salary)
if max_salary is not None:
if max_salary is not None: ##根据最大薪资筛选
q = q.filter(Employments.salary <= max_salary)
r= q.all()
if r:
@@ -95,17 +96,19 @@ def get_emp_dao(
"offer_date":i.offer_date,
"created_date": i.created_date,
"updated_date": i.updated_date,
"is_deleted":i.is_deleted } for i,compname,somewhere in r ]
"is_deleted":i.is_deleted } for i,compname,somewhere in r ] #返回信息列表
def delete_emp_dao(id,db):
try: # 删除有返回值,删除的行数
rows = db.query(Employments).filter(Employments.id == id).update( {'is_deleted':1} )
def delete_emp_dao(id,db): #删除函数
try:
rows = db.query(Employments)\
.filter(Employments.id == id)\
.update( {'is_deleted':1} ) #软删除,is_deleted返回1
except Exception as e:
except Exception as e: #失败返回信息
print(f'删除失败,{e}')
db.rollback()
rows = 0
db.rollback() #数据回滚
rows = 0 #返回0
else:
db.commit()
db.commit() #提交事务,永久保存
return rows
+22 -20
View File
@@ -30,21 +30,21 @@ from datetime import datetime
# )
class Employments(Base):
__tablename__ = 'Employments'
id = Column(Integer
class Employments(Base): #学生就业信息基类
__tablename__ = 'Employments' #表名
id = Column(Integer #主键,自增主键
, primary_key=True
, autoincrement=True
# , ForeignKey='student.id'
, comment='自增主键'
)
stuname = Column(String(50))
stuclass = Column(String(50))
stuname = Column(String(50)) #学生姓名,冗余字段
stuclass = Column(String(50)) #学生班级,冗余字段
# compname=Column(String(50)
# ,nullable=False
# )
company_id = Column(Integer
company_id = Column(Integer #公司id,外键匹配公司表
, ForeignKey('Company.id')
, nullable=False
@@ -53,31 +53,33 @@ class Employments(Base):
# , ForeignKey('Address.id')
# , nullable=False
# )
salary = Column(Integer)
salary = Column(Integer) #薪资
employment_open_date = Column(DATETIME)
employment_open_date = Column(DATETIME) #就业开放时间
offer_date = Column(DATETIME)
offer_date = Column(DATETIME) #offer下发时间
created_date = Column(DATETIME
created_date = Column(DATETIME #创建数据时间
, default=datetime.now
)
updated_date = Column(DATETIME
updated_date = Column(DATETIME #更新数据时间
, default=datetime.now
, onupdate=datetime.now
)
is_deleted = Column(Integer, default=0)
is_deleted = Column(Integer, default=0) #是否为删除信息,默认为0
class Company(Base):
__tablename__ = 'Company'
class Company(Base): #公司信息基类
__tablename__ = 'Company' #表名
id = Column(Integer
, primary_key=True
,autoincrement=True
) #主键id,自增主键
compname = Column(String(50) #公司姓名
, nullable=False #非空约束
)
compname = Column(String(50), nullable=False)
address_id = Column(Integer
# , ForeignKey('Address.id')
, nullable=False
address_id = Column(Integer #地址id,匹配地址表
, ForeignKey('Address.id') #外键地址表id
, nullable=False #非空约束
)
created_date = Column(DATETIME
, default=datetime.now
@@ -90,11 +92,11 @@ class Company(Base):
class Address(Base):
__tablename__ = 'Address'
id = Column(Integer
id = Column(Integer #地址id,自增主键
, primary_key=True
,autoincrement=True
)
somewhere=Column(String(50)
somewhere=Column(String(50) #地址区域
, nullable=False
)
created_date = Column(DATETIME
+6 -7
View File
@@ -2,8 +2,7 @@ from datetime import *
from pydantic import BaseModel, Field
class PostRequest(BaseModel):
class PostRequest(BaseModel): #学生就业信息请求体模型
# compname: str|None=None
stuname: str|None=None
stuclass: str|None=None
@@ -14,27 +13,27 @@ class PostRequest(BaseModel):
offer_date:date|None=None
updated_date:date|None=None
is_deleted:int=0
class EmpResponse(BaseModel):
class EmpResponse(BaseModel): #学生就业信息响应体
code: int = 200
detail: str = 'OK'
totals: int = 0
data: str | dict | tuple | list
class CompRequest(BaseModel):
class CompRequest(BaseModel): #公司信息请求体模型
compname:str
address_id: int | None = None
class CompResponse(BaseModel):
class CompResponse(BaseModel): #公司信息响应体
code: int = 200
detail: str = 'OK'
totals: int = 0
data: str | dict | tuple | list
class AddRequest(BaseModel):
class AddRequest(BaseModel): #地址请求体
somewhere:str
class AddResponse(BaseModel):
class AddResponse(BaseModel): #地址响应体
code: int = 200
detail: str = 'OK'
totals: int = 0