如何使用烧瓶进行交易SqlAlchemy

如何使用烧瓶进行交易SqlAlchemy,sqlalchemy,flask-sqlalchemy,Sqlalchemy,Flask Sqlalchemy,我需要向数据库请求data1,然后检查data1的条件,在其他任何更改数据库中data1的状态之前,保存新的data2。据我所知,这是使用SQL中的事务完成的,在SQLAlchemy中,这是使用engine.begin完成的 with connection.begin(): r1 = connection.execute(table1.select()) connection.execute(table1.insert(), {"col1":

我需要向数据库请求data1,然后检查data1的条件,在其他任何更改数据库中data1的状态之前,保存新的data2。据我所知,这是使用SQL中的事务完成的,在SQLAlchemy中,这是使用engine.begin完成的

with connection.begin():
        r1 = connection.execute(table1.select())
        connection.execute(table1.insert(), {"col1": 7, "col2": "this is some data"})
我怎样才能用烧瓶炼金术做同样的事情

在我的情况下,我将有许多服务器在最后,如果有两个 来自两个用户的会话,在运行不同flask的不同服务器上 应用程序,然后如何执行此代码事务功能,如果 两台服务器使用的数据库相同(仅在一台服务器上运行) 服务器)


flask sqlalchemy会在单独的会话(以及事务)中自动运行每个请求。这是通过SQLAlchemy ORM完成的,而您的示例代码使用SQLAlchemy核心。我不确定这是否是sql事务。在我看来,这只是会话事务。因此,同一用户一次不能做多件事。但是,如果用户很少,那么会话也很少,这可能会试图改变数据库的和平状态。在我的例子中,最后我将有许多服务器,如果在运行不同flask应用程序的不同服务器上有来自两个用户的两个会话,那么如果两个服务器使用的数据库相同(仅在一台服务器上运行),如何执行此代码事务功能