54 lines
1.4 KiB
Python
54 lines
1.4 KiB
Python
from model.teacher_model import Teacher
|
||
|
||
|
||
def add_teacher_dao(t,db):
|
||
try: #判断是都已存在
|
||
r = db.query(Teacher).filter(Teacher.teacher_id==t['teacher_id']).first()
|
||
if r:
|
||
return None #已存在,交给上层判断
|
||
obj = Teacher(**t)
|
||
db.add(obj)
|
||
|
||
db.commit()
|
||
db.refresh(obj) #拿回自增id,create_time等
|
||
return obj
|
||
except Exception:
|
||
db.rollback()
|
||
return False
|
||
|
||
def update_teacher_dao(teacher_id,data,db): #data:新增的内容
|
||
try: #数据更新有返回值,返回的是影响的行数
|
||
rows = db.query(Teacher).filter(Teacher.teacher_id == teacher_id).update(data)
|
||
db.commit()
|
||
return rows
|
||
except Exception:
|
||
db.rollback()
|
||
return False
|
||
|
||
|
||
|
||
|
||
def get_teacher_dao(teacher_id=None,teacher_name=None,db=None):
|
||
q = db.query(Teacher)
|
||
if teacher_id:
|
||
q = q.filter(Teacher.teacher_id==teacher_id)
|
||
if teacher_name:
|
||
q = q.filter(Teacher.teacher_name.like (f'%{teacher_name}%'))
|
||
return q.all() #返回ORM对象列表
|
||
|
||
|
||
|
||
def delete_teacher_dao(teacher_id,db):
|
||
try: #删除有返回值,删除的行数
|
||
rows = (db.query(Teacher)
|
||
.filter(Teacher.teacher_id == teacher_id)
|
||
.delete())
|
||
db.commit()
|
||
return rows
|
||
except Exception:
|
||
db.rollback()
|
||
return 0
|
||
|
||
|
||
|