Python 何时提交数据库连接?

Python 何时提交数据库连接?,python,mysql,sqlalchemy,flask,Python,Mysql,Sqlalchemy,Flask,假设我想使用for循环更改数据库中一组项的属性。(使用flask+SQLAlchemy)Python 我是否应该在整个循环完成后执行提交: for item in items: do stuff db.session.commit() 还是在每次迭代之后 for item in items: do stuff db.session.commit() 您必须在所有迭代之后提交 提交每次值更改或每次迭代都不是一个好的解决方案。当您确定数据处于预期状态时,应该提交。也就是说

假设我想使用for循环更改数据库中一组项的属性。(使用flask+SQLAlchemy)Python

我是否应该在整个循环完成后执行提交:

for item in items:
    do stuff
db.session.commit()
还是在每次迭代之后

for item in items:
    do stuff
    db.session.commit()

您必须在所有迭代之后提交


提交
每次值更改或每次迭代都不是一个好的解决方案。

当您确定数据处于预期状态时,应该提交。也就是说,当
commit
后的下一个操作失败时,您不在乎是否有人读取结果

在这种情况下,您很可能希望数据库中有一部分项目,而丢失一部分项目。因此,您应该在循环之后提交

对物体的操作也是如此;在下面的情况下,如果名字改变了,而不是姓,您是否可以

def change_fullname():
   user = get_user()
   user.first_name = 'Woop'
   user.last_name = 'Bar'

不,因为这不是操作应该做的,我们不希望有人读一个只有名字改变的用户。因此,只有在完成所有属性更改后,才可以提交。

第一个。在每次迭代中提交都不会带来任何好处。好的,谢谢。我查了一下,不太清楚。