From 5d61579973c375c77bd90976ff17b003dd18de7a Mon Sep 17 00:00:00 2001 From: "ishak jmilou.ishak" Date: Tue, 14 Jan 2025 14:22:50 +0100 Subject: [PATCH] Refactor YOLO results endpoint to handle empty results and improve database insertion logic --- src/Python/flask/web/app.py | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/Python/flask/web/app.py b/src/Python/flask/web/app.py index 549964e..97e2a11 100644 --- a/src/Python/flask/web/app.py +++ b/src/Python/flask/web/app.py @@ -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__':