Files
DoubaoTeam/dao/class_dao.py
T
2026-09-21 23:23:41 +08:00

62 lines
2.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 班级dao模块
from models.class_model import Classes # 从models包里的class_model班级模块导入Classes表模型类
#以下分别定义增、删、改、查的依赖函数,以便api接口函数中执行
# ————定义班级表"新增"信息的函数————
def post_classes_dao( c , db ): # 定义函数,设置两个形参c,db
try : # 执行以下可能报错的代码
cc = Classes( **c ) # 将接口函数接收的字典数据解包,实例化为 Classes 模型对象
db.add( cc ) # 将模型对象加入当前数据库会话(尚未真正写入数据库)
except : # 捕获异常:
db.rollback() # 如果中间出错,回滚事务,防止产生脏数据
return False # 返回 False,返回接口,表示操作失败
else : # 执行成功:
db.commit() # 提交事务:将数据真正持久化写入到数据库中
return True # 返回 True,返回接口,表示操作成功
def update_classes_dao( class_id , db , updates ):
try :
r = db.query(Classes).filter(Classes.id ==class_id , Classes.is_deleted == 0 ).update(updates)
except :
db.rollback()
return False
else :
db.commit()
return r
def get_classes_dao( class_id, class_no , class_name , page , page_size , db ):
q = db.query( Classes ).filter( Classes.is_deleted == 0 )
if class_id :
q = q.filter( Classes.id == class_id )
if class_no :
q = q.filter( Classes.class_no == class_no )
if class_name :
q = q.filter( Classes.class_name == class_name )
total = q.count()
r = q.offset( ( page-1 ) * page_size ).limit( page_size ).all()
return total,[ { 'class_id':i.id
, 'class_no':i.class_no
, 'class_name':i.class_name
, 'start_date':i.start_date
, 'end_date':i.end_date
, 'created_at':i.created_at
, 'update_at':i.update_at
, 'remark':i.remark
}
for i in r
]
def delete_classes_dao( class_id , db ):
try :
db.query( Classes ).filter( Classes.id == class_id , Classes.is_deleted == 0 ).update( {"is_deleted": 1} )
except :
db.rollback()
return False
else :
db.commit()
return True