save img in db
This commit is contained in:
parent
ddce8f7c90
commit
ad7754b38b
@ -7,12 +7,12 @@ class Record:
|
||||
id: int | None = None
|
||||
name: str | None = ""
|
||||
description: str | None = ""
|
||||
img_path: str | None = ""
|
||||
img: str | None = ""
|
||||
|
||||
def __init__(self, id, name, img_path, description):
|
||||
def __init__(self, id, name, img, description):
|
||||
self.id = id
|
||||
self.name = name
|
||||
self.img_path = img_path
|
||||
self.img = img
|
||||
self.description = description
|
||||
|
||||
|
||||
@ -29,17 +29,17 @@ class DB:
|
||||
"""CREATE TABLE IF NOT EXISTS records (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL,
|
||||
path TEXT NOT NULL,
|
||||
description BLOB
|
||||
img BLOB NOT NULL,
|
||||
description TEXT NOT NULL
|
||||
)""")
|
||||
self.path = path
|
||||
|
||||
def add_record(self, name="", description="", img_path=""):
|
||||
def add_record(self, name="", description="", img=""):
|
||||
self.cur.execute(
|
||||
'''INSERT INTO records (name, path, description) VALUES (?, ?, ?)''', (name, img_path, description))
|
||||
'''INSERT INTO records (name, img, description) VALUES (?, ?, ?)''', (name, img, description))
|
||||
self.con.commit()
|
||||
|
||||
def edit_record(self, old_name, name="", img_path="", description=""):
|
||||
def edit_record(self, old_name, name="", img="", description=""):
|
||||
record = self.get_record_by_name(old_name)
|
||||
if record.name != name:
|
||||
self.cur.execute(
|
||||
@ -47,9 +47,9 @@ class DB:
|
||||
if record.description != description:
|
||||
self.cur.execute(
|
||||
'UPDATE records SET description = ? WHERE name = ?', (description, old_name))
|
||||
if record.img_path != img_path:
|
||||
if record.img != img:
|
||||
self.cur.execute(
|
||||
'UPDATE records SET path = ? WHERE name = ?', (img_path, old_name))
|
||||
'UPDATE records SET img = ? WHERE name = ?', (img, old_name))
|
||||
self.con.commit()
|
||||
|
||||
def get_record_by_name(self, name):
|
||||
|
||||
26
main.py
26
main.py
@ -1,3 +1,4 @@
|
||||
import io
|
||||
from tkinter import *
|
||||
from tkinter import ttk, filedialog, messagebox
|
||||
import configparser
|
||||
@ -67,7 +68,7 @@ def selected(event):
|
||||
selected_indices = listbox.curselection()
|
||||
selected = ''.join([listbox.get(i) for i in selected_indices])
|
||||
record = database.get_record_by_name(selected)
|
||||
img = ImageTk.PhotoImage(Image.open(record.img_path))
|
||||
img = ImageTk.PhotoImage(Image.open(io.BytesIO(record.img)))
|
||||
image_label.config(image=img)
|
||||
desc_label.insert(1.0, record.description)
|
||||
|
||||
@ -82,8 +83,11 @@ def add_record_window(event=""):
|
||||
image_path_entry.insert(0, path)
|
||||
|
||||
def add_button():
|
||||
img = None
|
||||
with open(image_path_entry.get(), 'rb') as file:
|
||||
img = file.read()
|
||||
database.add_record(name=name_entry.get(), description=description_entry.get(
|
||||
1.0, "end-1c"), img_path=image_path_entry.get())
|
||||
1.0, "end-1c"), img=img)
|
||||
load_listbox()
|
||||
add_window.destroy()
|
||||
|
||||
@ -125,8 +129,15 @@ def update_record_window(event=""):
|
||||
image_path_entry.insert(0, path)
|
||||
|
||||
def edit_button():
|
||||
img = None
|
||||
print(image_path_entry.get())
|
||||
if image_path_entry.get() != "":
|
||||
with open(image_path_entry.get(), 'rb') as file:
|
||||
img = file.read()
|
||||
else:
|
||||
img = record.img
|
||||
database.edit_record(selected, name=name_entry.get(), description=description_entry.get(
|
||||
1.0, "end-1c"), img_path=image_path_entry.get())
|
||||
1.0, "end-1c"), img=img)
|
||||
load_listbox()
|
||||
update_window.destroy()
|
||||
|
||||
@ -158,7 +169,6 @@ def update_record_window(event=""):
|
||||
image_path_label = Label(update_window, text="Путь до изображения:")
|
||||
image_path_label.grid(row=2, column=0)
|
||||
image_path_entry = Entry(update_window, width=50)
|
||||
image_path_entry.insert(0, record.img_path)
|
||||
image_path_entry.grid(row=2, column=1)
|
||||
browse_button = Button(update_window, text="Обзор", command=browse_image)
|
||||
browse_button.grid(row=2, column=2)
|
||||
@ -262,11 +272,11 @@ def main():
|
||||
fond_menu = Menu(tearoff=0)
|
||||
fond_menu.add_command(label="Найти...")
|
||||
fond_menu.add_separator()
|
||||
fond_menu.add_command(label="Добавить F2", command=add_record_window)
|
||||
fond_menu.add_command(label="Удалить F3", command=confirm_delete)
|
||||
fond_menu.add_command(label="Изменить F4", command=update_record_window)
|
||||
fond_menu.add_command(label="Добавить", accelerator="F2", command=add_record_window)
|
||||
fond_menu.add_command(label="Удалить", accelerator="F3", command=confirm_delete)
|
||||
fond_menu.add_command(label="Изменить", accelerator="F4", command=update_record_window)
|
||||
fond_menu.add_separator()
|
||||
fond_menu.add_command(label="Выход Ctrl+X", command=close_prog)
|
||||
fond_menu.add_command(label="Выход", accelerator="ctrl+X", command=close_prog)
|
||||
|
||||
help_menu = Menu(tearoff=0)
|
||||
help_menu.add_command(label="Содержание", command=open_help_window)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user