在SQLAlchemy中的session.commit()之后更新对象

沙菲尔

发行后更新对象是否session.commit()可以正常工作?还是我需要刷新对象?

我认为这足以解决问题,但如有需要,我可能会提供更多信息来澄清我的问题。

编辑:

通过更新,我的意思是设置一些属性,即对象的列值。

简短的答案:不,您不需要手动刷新,sqlalchemy会为您完成。


知道何时发生是很有用的,因此下面是简短概述。来自以下文档Session.commit()

默认情况下,在事务提交后,会话还将使所有ORM管理的属性上的所有数据库加载状态失效。这样,后续操作即可从数据库中加载最新数据。可以使用sessionmaker或Session构造函数的expire_on_commit = False选项禁用此行为。

基本上,鉴于您未设置expire_on_commit=False,一旦您尝试访问(读取,但未设置)其属性,该对象将自动刷新session.commit()

my_obj = session.query(MyType).get(1)
my_obj.field1 = 'value1'
session.commit() # will commit and expire my_obj

my_obj.field1 = 'new value' # object is still the same, but field is updated
print my_obje.field1 # at this point SA will first refresh the object from the database; and make sure that new values for changed fields are applied

实际上,如果启用日志记录,则将在访问(读取)持久性实例的属性后立即sqlalchemy发出新的SELECT语句。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

session.delete之后出现意外的SQLAlchemy对象状态

来自分类Dev

Flask sqlalchemy检查db.session中的对象是否已准备好提交

来自分类Dev

实例化对象会自动添加到SQLAlchemy Session中。为什么?

来自分类Dev

SQLAlchemy 在 filter_by 之后动态更新行中的值

来自分类Dev

SQLAlchemy session.refresh不刷新对象

来自分类Dev

SQLAlchemy Session.Refresh不刷新对象

来自分类Dev

SQLAlchemy 中的更新错误

来自分类Dev

Flask和SQLAlchemy db.session.commit无法正常工作

来自分类Dev

在Yii2中的save()之后自动更新对象(ActiveRecord)数据

来自分类Dev

在Yii2中的save()之后自动更新对象(ActiveRecord)数据

来自分类Dev

commit()之后未更新SharedPreference

来自分类Dev

从sqlalchemy会话中删除对象

来自分类Dev

更新SQLAlchemy中的特定行

来自分类Dev

SqlAlchemy:如果不存在外键,为什么session.commit()不会失败?

来自分类Dev

带有Flask db.session.commit()的SQLAlchemy无法正常工作

来自分类Dev

SqlAlchemy:如果不存在外键,为什么session.commit()不会失败?

来自分类Dev

在sqlalchemy中强制对象为“脏”

来自分类Dev

关于在sqlalchemy会话中刷新对象

来自分类Dev

修改SQLAlchemy对象中的现有值

来自分类Dev

在SQLAlchemy中按子对象的字段排序?

来自分类Dev

SQLAlchemy:在访问时从关系中过滤对象

来自分类Dev

SQLAlchemy在一行中创建对象?

来自分类Dev

在SQLAlchemy中按子对象的字段排序?

来自分类Dev

访问 sqlalchemy 关联对象中的额外数据

来自分类Dev

为什么这不更新sqlalchemy中的表?

来自分类Dev

如何在 SQLalchemy 中批量更新?

来自分类Dev

从git rm之后的先前git commit中恢复文件

来自分类Dev

在 Knex.js 中的 transaction.commit 之后执行插入

来自分类Dev

在Windows中更新Anaconda之后的dask问题

Related 相关文章

  1. 1

    session.delete之后出现意外的SQLAlchemy对象状态

  2. 2

    Flask sqlalchemy检查db.session中的对象是否已准备好提交

  3. 3

    实例化对象会自动添加到SQLAlchemy Session中。为什么?

  4. 4

    SQLAlchemy 在 filter_by 之后动态更新行中的值

  5. 5

    SQLAlchemy session.refresh不刷新对象

  6. 6

    SQLAlchemy Session.Refresh不刷新对象

  7. 7

    SQLAlchemy 中的更新错误

  8. 8

    Flask和SQLAlchemy db.session.commit无法正常工作

  9. 9

    在Yii2中的save()之后自动更新对象(ActiveRecord)数据

  10. 10

    在Yii2中的save()之后自动更新对象(ActiveRecord)数据

  11. 11

    commit()之后未更新SharedPreference

  12. 12

    从sqlalchemy会话中删除对象

  13. 13

    更新SQLAlchemy中的特定行

  14. 14

    SqlAlchemy:如果不存在外键,为什么session.commit()不会失败?

  15. 15

    带有Flask db.session.commit()的SQLAlchemy无法正常工作

  16. 16

    SqlAlchemy:如果不存在外键,为什么session.commit()不会失败?

  17. 17

    在sqlalchemy中强制对象为“脏”

  18. 18

    关于在sqlalchemy会话中刷新对象

  19. 19

    修改SQLAlchemy对象中的现有值

  20. 20

    在SQLAlchemy中按子对象的字段排序?

  21. 21

    SQLAlchemy:在访问时从关系中过滤对象

  22. 22

    SQLAlchemy在一行中创建对象?

  23. 23

    在SQLAlchemy中按子对象的字段排序?

  24. 24

    访问 sqlalchemy 关联对象中的额外数据

  25. 25

    为什么这不更新sqlalchemy中的表?

  26. 26

    如何在 SQLalchemy 中批量更新?

  27. 27

    从git rm之后的先前git commit中恢复文件

  28. 28

    在 Knex.js 中的 transaction.commit 之后执行插入

  29. 29

    在Windows中更新Anaconda之后的dask问题

热门标签

归档