gpt4 book ai didi

python - Peewee ORM 获取更新的数据库数据

转载 作者:太空宇宙 更新时间:2023-11-04 02:32:58 25 4
gpt4 key购买 nike

我有一个关于在动态变化的关系数据上使用 ORM(特别是 Peewee)的基本概念问题。

Peewee 将信息从数据库映射到 Python 对象以便于使用。

我的理解是查询在查询时产生Python对象。然后是否应该以某种方式更改数据库数据(在我的例子中是通过另一个线程)生成的对象的属性现在已经过时了,对吗?

我的核心问题是我的应用程序在结构上非常异步——网络应用程序提供前端(通过 Flask)、硬件传感器输入数据,运行的守护进程根据我的数据库内容确定要采取的操作。因此,我不得不不断地手动重新查询,以便我的 Python 对象正确地表示数据库中的数据,例如:

name = 'obj_name'
instance = Model.select().where(Model.name = name)
#time passes, need to refresh
instance = Model.get(Model.id == instance.id)

有什么方法可以让它更优雅吗?

理想情况下,每次访问 Peewee 对象时,我都会自动重新查询数据库。

或者我可以添加一个更新对象的 refresh() 方法,例如:

instance = instance.refresh()

有什么建议吗?

在这种情况下,使用 ORM 最简洁的方法是什么?

最佳答案

所以您在一个线程中有长期存在的 Python 对象,同时另一个线程正在更新数据库?重新查询是使用像 Peewee 这样的 ActiveRecord ORM 所能做的最好的事情。

def refresh(self):
return type(self).get_by_id(self._pk)

关于python - Peewee ORM 获取更新的数据库数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48699012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com