Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以用python连续读取数据库吗?_Python_Sql_Raspberry Pi - Fatal编程技术网

可以用python连续读取数据库吗?

可以用python连续读取数据库吗?,python,sql,raspberry-pi,Python,Sql,Raspberry Pi,我正在开发一个3D扫描仪,使用树莓圆周率和佳能单反相机。为了控制反射和转台,我使用了我开发的一个简单的web界面 但是我必须在HTML界面和Python控制程序之间的“开始”或“暂停”按钮之间建立链接。所以我创建了一个数据库来存储单反的设置(ISO,Shutterspeed…) 例如,是否可以在数据库中有一个框,其中的“暂停”按钮的状态为true或false,然后在python程序上连续读取 我制作了一个如下的小测试代码: import mysql.connector import time

我正在开发一个3D扫描仪,使用树莓圆周率和佳能单反相机。为了控制反射和转台,我使用了我开发的一个简单的web界面

但是我必须在HTML界面和Python控制程序之间的“开始”或“暂停”按钮之间建立链接。所以我创建了一个数据库来存储单反的设置(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的值时,程序从不显示新值,也从不离开循环,这里有什么问题?

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


这里有一个非常好的教程:

您应该使用一些类似套接字的工具来实时发送消息。如何确定DB中的值已更改?也许你忘了提交它了?@KlausD是的,也许吧,但我从来没有使用过这种方法。@MikeScotty通常只有在数据库中写入时才使用提交?否?是的,这就是为什么我要问“发件人”是否进行了正确的提交,否则您的进程将看不到值已更改。由于您发布的代码不包含UPDATE语句,它必须发生在其他地方,而魔法水晶球尚未发明;)