sqlalchemy读取属性的处理(陈旧性)

时间:2014-08-28 04:42:32

标签: python mysql sqlalchemy

这可能是一个愚蠢的问题,但我无法在任何地方找到答案。

让我说我拉一些值:

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()

读取widget的属性是否实际检查数据库?有没有办法让它明确地这样做而不做另一个查询?

我担心读取的价值可能过时了。

谢谢!

1 个答案:

答案 0 :(得分:-1)

不会更新这些值。要更新对象,您需要将每个对象推送到会话事务中并提交如下:

widgets = session.query(Widget).all()
for widget in widgets:
  widget.name = widget.name  + '_widget_name'
  db.session.add(widget)
db.session.commit()