python - 是否可以在python中连续读取数据库?
问题描述
我正在使用 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 的值时,程序永远不会显示新值并且永远不会离开循环,这里有什么问题?
解决方案
考虑使用像 websocket 这样的实时通信。最简单的方法是:当扫描仪扫描一些值并将其保存到数据库时,通过 websocket 命令发送到客户端,以从服务器中提取新数据。或者您可以直接在 websocket 消息中发送新数据。
非常好的教程在这里:https ://realpython.com/python-sockets/
推荐阅读
- reactjs - Babel-Loader 不解析 ReactDom.render
- mysql - MySQL 社区 - 扩展
- javascript - 无法在 li 标签之间获取值
- amazon-web-services - S3 存储桶策略:s3client.listObjects() 期间的“org.xml.sax.SAXParseException:文件过早结束”
- php - Woocommerce Rest API 无法在实时服务器上运行
- botframework - 如何使用之前删除的 SIP 添加 Skype For Business 机器人?
- java - 无法让 Spring Retry 工作
- c# - VS 2017,让您调试 ASP.NET C# 项目的发布版本
- android - 是否可以在其适配器的 getGroupView 内折叠和展开 ExpandableListView?
- bash - 输入文件中的循环脚本