Загрузка данных



import tkinter as tk
import sqlite3
from tkinter import messagebox

# Подключение к базе данных
con = sqlite3.connect("glucose.db")
cur = con.cursor()

cur.execute("""
CREATE TABLE IF NOT EXISTS measurements (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    glucose REAL
)
""")
con.commit()


def add():
    try:
        value = float(entry.get().replace(",", "."))

        if value <= 0:
            messagebox.showerror("Ошибка", "Введите число больше нуля")
            return

        cur.execute(
            "INSERT INTO measurements (glucose) VALUES (?)",
            (value,)
        )
        con.commit()

        entry.delete(0, tk.END)
        show()

    except ValueError:
        messagebox.showerror("Ошибка", "Введите число")


def show():
    listbox.delete(0, tk.END)

    cur.execute("SELECT * FROM measurements")
    rows = cur.fetchall()

    for row in rows:
        listbox.insert(tk.END, str(row[0]) + ". " + str(row[1]))


def delete():
    selected = listbox.curselection()

    if selected:
        text = listbox.get(selected[0])
        number = int(text.split(".")[0])

        cur.execute(
            "DELETE FROM measurements WHERE id = ?", (number,)
        )
        con.commit()
        show()
    else:
        messagebox.showinfo("Информация", "Выберите запись")


# Создание окна
window = tk.Tk()
window.title("Дневник глюкозы")
window.geometry("350x400")

tk.Label(
    window,
    text="Уровень глюкозы (ммоль/л)"
).pack(pady=10)

entry = tk.Entry(window)
entry.pack()

tk.Button(
    window,
    text="Добавить измерение",
    command=add
).pack(pady=10)

tk.Label(window, text="История измерений").pack()

listbox = tk.Listbox(window, width=30)
listbox.pack(pady=10)

tk.Button(
    window,
    text="Удалить запись",
    command=delete
).pack()

show()

window.mainloop()
con.close()