Python刷新sqlite3连接以获取最新值

时间:2018-08-24 11:03:51

标签: python django database sqlite

我有一个Djanjo应用程序,该应用程序允许用户输入提交到数据库的数据。

此数据库可通过在同一台计算机上运行的python脚本立即访问。

场景

  1. 用户从Raspberry Pi(RPi)登录Django网站
  2. 用户输入所需的数据。
  3. 数据已提交到数据库。
  4. 用户按下连接到RPi的按钮,提示数据库查询。
  5. 单独的python脚本根据用户输入执行计算。

我的问题是,如果在第3步之后立即执行第4步,则查询不会获得用户输入的最新数据,而是先前已存储在数据库中的数据。

如果用户在30秒后按下按钮,则查询将成功执行。

我的代码以从数据库获取最新数据:

application/vnd.paginated-collection+json

有什么方法可以刷新连接以确保仅检索到最新的值?

编辑

写入数据库的速度非常快。刷新 conn = sqlite3.connect('Line3_Data.db') c = conn.cursor() c.execute("SELECT tact FROM LineOEE03 ORDER BY tact desc limit 1") current_tact = c.fetchone() tact ----------------- 45 <- old value retrieved 60 <- new value from step 3 not retrieved 60 <- new value from step 3 not retrieved 时立即可见。刷新sqlitebrowser后,检查是否已发生写操作,仍将检索旧值。

大约需要30秒才能读取新值。

1 个答案:

答案 0 :(得分:2)

在读取之前执行conn.commit()应该会使您的连接会话保持最新状态。然后,您将看到数据的最后状态。