52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
![]() |
from flask import Blueprint, request, jsonify
|
|||
|
import sqlite3
|
|||
|
from collections import defaultdict
|
|||
|
import traceback
|
|||
|
|
|||
|
bp = Blueprint('shi2', __name__)
|
|||
|
|
|||
|
|
|||
|
def get_db_connection():
|
|||
|
conn = sqlite3.connect('agriculture.db')
|
|||
|
conn.row_factory = sqlite3.Row
|
|||
|
return conn
|
|||
|
|
|||
|
|
|||
|
@bp.route('/device-moisture', methods=['GET'])
|
|||
|
def get_device_moisture_data():
|
|||
|
# 固定查询2025-05-27的数据
|
|||
|
query_date = '2025-05-27'
|
|||
|
start_time = '00:00:00'
|
|||
|
end_time = '23:59:59'
|
|||
|
|
|||
|
conn = get_db_connection()
|
|||
|
try:
|
|||
|
cur = conn.cursor()
|
|||
|
# 修正表名和字段名,使用temperature_data表中的实际字段
|
|||
|
cur.execute('''
|
|||
|
SELECT device_id, humidity as moisture, timestamp
|
|||
|
FROM temperature_data
|
|||
|
WHERE DATE(timestamp) = ?
|
|||
|
AND TIME(timestamp) BETWEEN ? AND ?
|
|||
|
ORDER BY device_id, timestamp
|
|||
|
''', (query_date, start_time, end_time))
|
|||
|
|
|||
|
rows = cur.fetchall()
|
|||
|
|
|||
|
# 按设备ID分组湿度数据(修正字段引用为humidity)
|
|||
|
device_data = defaultdict(list)
|
|||
|
for row in rows:
|
|||
|
device_id = row['device_id']
|
|||
|
moisture = float(row['moisture']) # 这里使用别名moisture
|
|||
|
device_data[device_id].append(moisture)
|
|||
|
|
|||
|
if not device_data:
|
|||
|
return jsonify({}), 200
|
|||
|
|
|||
|
return jsonify(device_data)
|
|||
|
except Exception as e:
|
|||
|
print(f"数据库查询错误: {str(e)}")
|
|||
|
traceback.print_exc()
|
|||
|
return jsonify({'error': '数据库查询失败,请检查日志'}), 500
|
|||
|
finally:
|
|||
|
conn.close()
|