Python 刷新 sqlite3 连接以检索最新值

标签 python django database sqlite

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

可以通过在同一台机器上运行的 python 脚本立即访问该数据库。

场景

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

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

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

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

        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 时立即可见。刷新 sqlitebrowser 后,检查写入是否已发生,旧值仍被检索。

读取新值需要大约 30 秒。

最佳答案

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

关于Python 刷新 sqlite3 连接以检索最新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52003091/

相关文章:

python - 在 Sublime Text 3 API 中使用 set_timeout

Python/Django : Unable to return list elements line by line

django - 将 SECRET KEY 放在环境变量中是否比将其放在未跟踪的设置文件中更好?

python - 我一直在编辑 json 文件,但文件本身没有更新(python)

Python:以pythonic方式将多个参数从函数传递给函数

python - 在 Python 中使用游标

python - 用于限制对象中属性类型的函数(Python、mypy)

django - 按 django 中日期时间字段的时间排序

database - 在 Go 中为 SQL 连接设置 TCP 超时

mysql - 合并或分离表格