······我去,用SQLAlchemy操作数据库,时不时就会出现bug,为了减少bug,从现在开始,以后出现bug就找出原因把代码贴出来,汗·····
以下代码是要实现删除符合多个条件的数据(已验证)
def delete_service(self, service_id, service_type, user_name):
#row = self.get_service(service_id, service_type, user_name)
try:
session = self.GetDBSession()
session.query(UserServices).filter(and_(UserServices.service_id == service_id,
UserServices.service_type == service_type,
UserServices.user_name == user_name)).delete()
self.DBSessionClose(commit=True)
return True
except Exception as e:
print(e)
return False
以下是原bug代码,这段代码会匹配到多个数据,一删除就会删除多条,但以前用这个单个条件删除却没问题,想了半天,还没发现原因,现在时间有点紧,后头有时间找出原因再来更新。。。。同时欢迎各位大佬指点一二····汗,溜了。。。。。。
def get_service(self, service_id, service_type, user_name):
try:
session = self.GetDBSession() # 连接数据库,开启会话(连接过程已封装)
service = session.query(UserServices).filter(and_(UserServices.service_id == service_id,
UserServices.service_type == service_type,
UserServices.user_name == user_name)).first() # 返回服务
self.DBSessionClose()
return service
except Exception as e:
print(e)
def delete_service(self, service_id, service_type, user_name):
row = self.get_service(service_id, service_type, user_name)
try:
session = self.GetDBSession()
session.delete(row)
self.DBSessionClose(commit=True) # 提交更改,并关闭连接
return True
except Exception as e:
print(e)
return False