考虑以下定义:
Base = declarative_base()
class SomeClass(Base):
__tablename__ = 'some_table'
id = Column(Integer, primary_key=True)
name = Column(String(50))
和会话设置为:
engine = create_engine(dsn)
Session = sessionmaker(autocommit=True,bind=engine)
session = scoped_session(Session)
使用autocommit=False
:
s1 = session.query(SomeClass).filter(SomeClass.id == myid).first()
s1.name = 'name'
session.add(s1)
session.commit()
在autocommit=True
时执行此操作的等效方式是什么? session.add()
和session.commit()
是否必要?或者是否有一种更简单的方式,或许是s1.save()
?