可以用python连续读取数据库吗?
我正在开发一个3D扫描仪,使用树莓圆周率和佳能单反相机。为了控制反射和转台,我使用了我开发的一个简单的web界面 但是我必须在HTML界面和Python控制程序之间的“开始”或“暂停”按钮之间建立链接。所以我创建了一个数据库来存储单反的设置(ISO,Shutterspeed…) 例如,是否可以在数据库中有一个框,其中的“暂停”按钮的状态为可以用python连续读取数据库吗?,python,sql,raspberry-pi,Python,Sql,Raspberry Pi,我正在开发一个3D扫描仪,使用树莓圆周率和佳能单反相机。为了控制反射和转台,我使用了我开发的一个简单的web界面 但是我必须在HTML界面和Python控制程序之间的“开始”或“暂停”按钮之间建立链接。所以我创建了一个数据库来存储单反的设置(ISO,Shutterspeed…) 例如,是否可以在数据库中有一个框,其中的“暂停”按钮的状态为true或false,然后在python程序上连续读取 我制作了一个如下的小测试代码: import mysql.connector import time
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的值时,程序从不显示新值,也从不离开循环,这里有什么问题?考虑使用websocket之类的实时通信。 最简单的方法是:当扫描器扫描一些值并将其保存到数据库时,通过websocket命令发送到客户端,以从服务器中提取新数据。或者您可以在websocket消息中发送新数据
这里有一个非常好的教程:您应该使用一些类似套接字的工具来实时发送消息。如何确定DB中的值已更改?也许你忘了提交它了?@KlausD是的,也许吧,但我从来没有使用过这种方法。@MikeScotty通常只有在数据库中写入时才使用提交?否?是的,这就是为什么我要问“发件人”是否进行了正确的提交,否则您的进程将看不到值已更改。由于您发布的代码不包含UPDATE语句,它必须发生在其他地方,而魔法水晶球尚未发明;)