Flask API 接口解析:接收传感器数据并存储到 MySQL 数据库
这段代码是一个使用 Flask 框架构建的 API 接口。当有 POST 请求发送到根目录'/'时,会执行 print_messages 函数。函数的主要功能是从 POST 请求的 JSON 数据中解析出温度、湿度、CO、烟雾浓度、ppm 等数据,并将这些数据保存到 MySQL 数据库中。最后,API 会返回一个 JSON 格式的响应,其中包含一个表示操作成功的消息。如果这个脚本被直接运行,则会启动 API 服务。
代码解析
- 导入必要的库:
from flask import Flask, json, request
import re
import pymysql
- 创建 Flask 应用:
api = Flask(__name__)
- 定义 API 路由:
@api.route('/', methods=['POST'])
def print_messages():
...
- 处理 POST 请求:
reply= {'result': 'ok', 'message': 'success'}
data=request.get_json()
# 获取 JSON 数据
json_str = json.dumps(data)
json_data = json.loads(json_str)
# 提取传感器数据
temperature = json_data['temperature']
humidity = json_data['humidity']
co = json_data['co']
yan = json_data['yan']
ppm = json_data['ppm']
# 打印数据(可选)
print(temperature)
print(humidity)
print(co)
print(yan)
print(ppm)
- 连接 MySQL 数据库:
conn = pymysql.connect(host='127.0.0.1',
user='root',
password='aff6fc6013b00ddd',
database='mqtt',
port=3306,
charset='utf8')
print("连接成功")
cursor = conn.cursor()
- 执行 SQL 插入语句:
insert_emp_sql = """
insert into mqtt.esp82661(temperature,humidity,co,yan,ppm)
values(%s,%s,%s,%s,%s)
"""
cursor.execute(insert_emp_sql,(temperature,humidity,co,yan,ppm)) #执行sql语句
# 提交数据
conn.commit()
cursor.close()
# 关闭连接
conn.close()
- 返回 JSON 响应:
return json.dumps(reply), 200
- 启动 API 服务:
if __name__ == '__main__':
api.run()
总结
这段代码展示了如何使用 Flask 框架构建一个简单的 API 接口,用于接收传感器数据并将其存储到 MySQL 数据库中。代码中使用 request.get_json() 获取 POST 请求中的 JSON 数据,并使用 pymysql 库连接 MySQL 数据库。最后,接口返回一个表示操作成功的 JSON 响应。
原文地址: https://www.cveoy.top/t/topic/nw4R 著作权归作者所有。请勿转载和采集!