Python 何时提交数据库连接?
假设我想使用for循环更改数据库中一组项的属性。(使用flask+SQLAlchemy)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 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'
不,因为这不是操作应该做的,我们不希望有人读一个只有名字改变的用户。因此,只有在完成所有属性更改后,才可以提交。第一个。在每次迭代中提交都不会带来任何好处。好的,谢谢。我查了一下,不太清楚。