From 305b2690939232d762883373dfc76a9018240cbd Mon Sep 17 00:00:00 2001 From: Namonay Date: Fri, 20 Feb 2026 10:55:55 +0000 Subject: [PATCH] add: db --- server/src/data/app.py | 78 +++++++++++++++++++++++++--- server/src/data/templates/index.html | 6 +-- 2 files changed, 73 insertions(+), 11 deletions(-) diff --git a/server/src/data/app.py b/server/src/data/app.py index 765cc5c..5ed777a 100644 --- a/server/src/data/app.py +++ b/server/src/data/app.py @@ -1,29 +1,91 @@ -from flask import Flask, render_template, request, redirect, url_for +from flask import Flask, render_template, request, redirect, url_for, jsonify +import sqlite3 app = Flask(__name__) -items = {} +DB_PATH = "data.db" + +conn = sqlite3.connect(DB_PATH) +cursor = conn.cursor() + +cursor.execute(""" +CREATE TABLE IF NOT EXISTS items ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + time TEXT NOT NULL +) +""") + +conn.commit() +conn.close() + +def get_db_connection(): + conn = sqlite3.connect(DB_PATH) + conn.row_factory = sqlite3.Row + return conn + @app.route("/") def mainpage(): + conn = get_db_connection() + cursor = conn.cursor() + cursor.execute("SELECT name, time FROM items ORDER BY name") + items = cursor.fetchall() + conn.close() return render_template('index.html', title='BS Shutdown', items=items) @app.route('/submit', methods =['POST']) def submit(): value = request.form.get("query") time_value = request.form.get("time") - items[value] = time_value + if not value or not time_value: + return redirect(url_for("mainpage")) + conn = get_db_connection() + cursor = conn.cursor() + cursor.execute('SELECT 1 FROM items WHERE name = ?', (value,)) + item = cursor.fetchone() + if item: + conn.close() + return redirect(url_for("mainpage")) + cursor.execute( + "INSERT INTO items (name, time) VALUES (?, ?)", + (value, time_value) + ) + conn.commit() + conn.close() return redirect(url_for("mainpage")) @app.route("/delete", methods=["POST"]) def delete(): value = request.form.get("item_name") - if value in items: - del items[value] + conn = get_db_connection() + cursor = conn.cursor() + cursor.execute('SELECT 1 FROM items WHERE name = ?', (value,)) + item = cursor.fetchone() + if not item: + conn.close() + return redirect(url_for("mainpage")) + cursor.execute( + "DELETE FROM items WHERE name = ?", + (value,) + ) + conn.commit() + conn.close() return redirect(url_for("mainpage")) @app.route("/lookup", methods=["POST"]) def lookup(): name = request.form.get("name") - if name in items: - return jsonify(items[name]), 200 - return jsonify({"error": "machine isn't in the list"}), 404 \ No newline at end of file + + conn = get_db_connection() + cursor = conn.cursor() + cursor.execute( + "SELECT name, time FROM items WHERE name = ?", + (name,) + ) + item = cursor.fetchone() + conn.close() + + if item: + return jsonify({"name": item["name"], "time": item["time"]}), 200 + else: + return jsonify({"error": "Not found"}), 404 \ No newline at end of file diff --git a/server/src/data/templates/index.html b/server/src/data/templates/index.html index 1f3d85f..eefd251 100644 --- a/server/src/data/templates/index.html +++ b/server/src/data/templates/index.html @@ -35,11 +35,11 @@
Liste des éléments
- {% for name, time in items.items() %} + {% for item in items %}
- {{ name }} + {{ item.name }} - {{ time }} + {{ item.time }}