对象被添加到数据库中,而不使用 session.commit()



我在Flask API应用程序中使用SQLAlchemy遇到了一个奇怪的问题,即使注释了提交指令,也会将一个对象插入到数据库中:

try:
new_project = model.Projects(project_name, project_desc)
session.add(new_project)
session.flush()
session.refresh(new_project)
# session.commit()
response = 'OK'
return response
except Exception as e:
logging.error("ERROR :"+str(e))  
session.rollback()
response = 'ERROR'
session.close()
return response

任何解释 ?

编辑:

这是类项目:

from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Projects(Base, DictSerializable):
__tablename__ = 'projects'
id = Column(Integer, primary_key=True)
name = Column(String)
description = Column(String)

def __init__(self, name, description=None):
self.name = name
self.description = description

您可能session是用autocommit=True标志创建的。查看对象的创建位置并进行更改。

最新更新