我正在使用Raspberry Pi和佳能SLR开发3D扫描仪。为了控制反射和转盘,我使用了开发的简单Web界面。
但是我必须在HTML界面和Python控制程序之间建立“开始”或“暂停”按钮之间的链接。因此,我创建了一个数据库来存储SLR的设置(ISO,Shutterspeed ...)。
例如,是否可能在数据库中有一个状态为true
或false
的暂停按钮框,然后在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的值时,程序从不显示新值,也从不离开循环,这是什么问题?
答案 0 :(得分:0)
考虑使用像websocket这样的实时通信。 最简单的方法是:当扫描程序扫描某些值并将其保存到DB时,通过websocket命令发送给客户端,以从服务器提取新数据。或者,您可以直接在websocket消息中发送新数据。
非常好的教程在这里:https://realpython.com/python-sockets/