Refactor YOLO results endpoint to handle empty results and improve database insertion logic

This commit is contained in:
ishak jmilou.ishak
2025-01-14 14:22:50 +01:00
parent ebd88e43ab
commit 5d61579973

View File

@@ -162,19 +162,22 @@ def image():
def yolo_results_endpoint():
global yolo_results
with lock:
return jsonify(yolo_results)
try:
data = json.loads(yolo_results)
db = get_db()
with db.cursor() as cursor:
sql_yolo = "INSERT INTO image (class, confidence) VALUES (%s, %s)"
cursor.executemany(sql_yolo, data)
db.commit()
cursor.close()
except json.JSONDecodeError as e:
print(f"JSON decode error: {e}")
except mysql.connector.Error as err:
print(f"Database error: {err}")
if yolo_results:
try:
data = json.loads(yolo_results)
db = get_db()
camera_data_tuples = [(item['class'], float(item['confidence'])) for item in data]
with db.cursor() as cursor:
sql_yolo = "INSERT INTO image (object, confidence) VALUES (%s, %s)"
cursor.executemany(sql_yolo, camera_data_tuples)
db.commit()
cursor.close()
except json.JSONDecodeError as e:
print(f"JSON decode error: {e}")
except mysql.connector.Error as err:
print(f"Database error: {err}")
return jsonify(yolo_results)
if __name__ == '__main__':