【发布时间】:2018-08-24 11:03:51
【问题描述】:
我有一个 Djanjo 应用程序,它允许用户输入提交到数据库的数据。
通过在同一台机器上运行的 python 脚本立即访问此数据库。
场景
- 用户从 Raspberry Pi (RPi) 登录 Django 网站
- 用户输入所需数据。
- 数据提交到数据库。
- 用户按下连接到 RPi 的按钮,提示数据库查询。
- 单独的 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 秒。
【问题讨论】:
-
我会看
write而不是read。你提交了写吗? -
将编辑问题以澄清。我可以使用
sqlitebrowser立即看到写入。它会立即记录下来。
标签: python django database sqlite