首页 > 解决方案 > 是否可以在python中连续读取数据库?

问题描述

我正在使用 Raspberry Pi 和佳能 SLR 开发 3D 扫描仪。为了控制反射和转盘,我使用了我开发的一个简单的 Web 界面。

但是我必须在 HTML 界面和 Python 控制程序之间建立一个“开始”或“暂停”按钮之间的链接。所以我创建了一个数据库来存储 SLR 的设置(ISO、Shutterspeed ...)。

例如,是否可以在数据库中有一个带有状态truefalse暂停按钮的框,然后在 python 程序上连续读取它?

我在下面做了一个小测试代码:

import mysql.connector
import time 

mydb = mysql.connector.connect(
    host="localhost",
    user="scanner",
    passwd="valentin",
    database="Scanner3D"
    )

print(mydb)

mycursor = mydb.cursor()
mycursor.execute("SELECT a FROM test")
myresult = mycursor.fetchall()    
print(myresult)
myresult = str(myresult)
print(myresult)
x = myresult[2:4]
print(x)

while x == "10":

    print("Hello World")
    time.sleep(1)

    mycursor.execute("SELECT a FROM test")
    myresult = mycursor.fetchall()
    myresult = str(myresult)
    x = myresult[2:4]
    print(x)

问题是当我在数据库中更改 A 的值时,程序永远不会显示新值并且永远不会离开循环,这里有什么问题?

标签: pythonsqlraspberry-pi

解决方案


考虑使用像 websocket 这样的实时通信。最简单的方法是:当扫描仪扫描一些值并将其保存到数据库时,通过 websocket 命令发送到客户端,以从服务器中提取新数据。或者您可以直接在 websocket 消息中发送新数据。

非常好的教程在这里:https ://realpython.com/python-sockets/


推荐阅读