Thr*_*dne 6 python mysql json get http
我仍然很擅长编程,并试图教会自己正确的做事方式.
我目前正在编写一个脚本,它将在python中获取大约每秒生成的1-3个值,然后将其保存到MySQL数据库中.接下来将构建一个Web接口,它将获取这些值并很好地显示它们,但是现在我只想保存数据.
我将在Raspberry Pi上运行Python代码,并希望带有MySQL服务器的Web服务器.如果没有在另一个Raspberry Pi上的那个设备上.
我在这里问的是,Python与MySQL一起工作的最佳方式是什么?库或HTTP GET,或者我不了解的其他方式......因为,我打算构建一个Web界面,我正在考虑有一个API.php页面,它将接受GET请求然后PHP代码将写入数据到MySQL数据库.
我想到的是让Python生成一个链接,然后使用请求库来请求网站,例如http://127.0.0.1/API.php?value1=XXX&Value2=YYY&value3=ZZZ 然后等待JSON返回类似的东西如果数据保存正确,则"数据已保存".然后继续生成下一个值的循环.
这是最好的解决方法,还是有更好的方法?我知道我会遇到一些安全问题,一旦我了解了有关编码的更多信息,我希望能够解决这些问题.请记住,我希望每隔1或5秒写入一次数据.希望每1秒钟一次.
感谢你们的答复,Throdne
小智 7
有很多方法可以做到这一点,但既然你说MySQL服务器可能在同一个Raspberry Pi 或不同的Raspberry Pi上,以下是获得你需要设置的最简单的方法.
首先,您需要安装包含MySQL绑定的Python包.那里有很多,但MySQL-python
似乎成熟和足够好.
要安装它:
$ pip install mysql
Run Code Online (Sandbox Code Playgroud)
(如果您还不熟悉pip
,请查看pip
文档以开始使用.)
一旦你在一个Raspberry Pis上运行了一个MySQL服务器,这里有一个例子,你需要在代码中连接到服务器并运行各种类型的查询:
import MySQLdb
host = '192.168.99.100'
user = 'myuser'
password = 'secret'
port = 3306
db = 'test'
conn = MySQLdb.Connection(
host=host,
user=user,
passwd=password,
port=port,
db=db
)
# Example of how to insert new values:
conn.query("""INSERT INTO mytable VALUES ('foo3', 'bar2')""")
conn.commit()
# Example of how to fetch table data:
conn.query("""SELECT * FROM mytable""")
result = conn.store_result()
for i in range(result.num_rows()):
print(result.fetch_row())
Run Code Online (Sandbox Code Playgroud)
查看MySQL-python用户文档以获取有关如何使用库的更多详细信息.
上面的代码假设您的MySQL服务器有几个方面:
192.168.99.100
.它可以是127.0.0.1
(localhost)或其他地址.myuser
定义,具有密码和适当的权限.test
.mytable
数据库test
包含的VARCHAR领域foo
和bar
.我不会详细介绍这些细节,因为这有点超出了这个线程的范围,但如果需要帮助,请查看用于创建用户和创建表的MySQL文档.
归档时间: |
|
查看次数: |
17071 次 |
最近记录: |