sqlalchemy使用声明性语法提交,且自动提交设置为true

sqlalchemy使用声明性语法提交,且自动提交设置为true,sqlalchemy,Sqlalchemy,考虑到以下定义: 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

考虑到以下定义:

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()
?或者有没有一种更简单的方法,可能类似于SQLAlchemy中的
s1.save()

,自动提交仅在不存在事务时有效,这意味着它仅在直接执行语句时才有用。如果您正在使用ORM和声明性语法,请不要为此烦恼。@Pedrowernick我想要自动提交,但仍然能够使用声明性语法。我对问题进行了编辑,以说明会话是如何创建的。这可能吗?不,不可能,至少在没有重大麻烦的情况下不可能。这不是炼金术的工作原理。另外,添加save()方法是最糟糕的事情。一开始这看起来是个好主意,但后来会产生问题。对“活动记录”和“工作单元”模式进行一些研究。