这可能是一个愚蠢的问题,但我在任何地方都找不到答案。
假设我提取了一些值:
widgets = session.query(Widget).all()
for widget in widgets:
# ... do lots of things here
# ... some other thread could be updating these widgets!
if widget.is_ready:
do_something()
读取小部件的属性真的会检查数据库吗?有没有一种方法可以让它显式地这样做,而不进行另一个查询?
我担心读取的值可能已经过时。
谢谢!
这些值将不会更新。要更新对象,您需要将每个对象推送到会话事务中并提交,如:
widgets = session.query(Widget).all()
for widget in widgets:
widget.name = widget.name + '_widget_name'
db.session.add(widget)
db.session.commit()