Как отобразить данные в таблице с помощью Tkinter. Часть 3
Здравствуйте! В предыдущих статьях мы рассмотрели два варианта отображения таблиц в Tkinter. Напомним что первый вариант - это виджет Entry из самой библиотеки в сочетании с циклом for, а второй вариант предполагает использование сторонней библиотеки tksheet. Сегодняшняя статья будет посвящена тому, как отобразить данные SQLite в таблице Tkinter. Итак, таблица Tkinter может служить интерфейсом для данных, находящихся в постоянном хранилище, например в базе данных SQLite. В этом случае оператор SQL обычно используется для выбора всех или некоторых данных в одной или нескольких таблицах базы данных для отображения в таблице. Например:
Оператор SQL, который выбирает все данные из таблицы:
SELECT * from <database_table_name>
Обратите внимание, что данные, отображаемые в таблице Tkinter, не являются постоянными, но оператор запроса автоматически сохраняется в базе данных для использования в будущем. В этом примере таблица Tkinter используется в качестве интерфейса для отображения данных в таблице базы данных SQLite:
from tkinter import ttk
import tkinter as tk
import sqlite3
def connect():
con1 = sqlite3.connect("<path/database_name>")
cur1 = con1.cursor()
cur1.execute("CREATE TABLE IF NOT EXISTS table1(id INTEGER PRIMARY KEY, First TEXT, Surname TEXT)")
con1.commit()
con1.close()
def View():
con1 = sqlite3.connect("<path/database_name>")
cur1 = con1.cursor()
cur1.execute("SELECT * FROM <table_name>")
rows = cur1.fetchall()
for row in rows:
print(row)
tree.insert("", tk.END, values=row)
con1.close()
# подключение к базе данных
connect()
# инициализация Tkinter
root = tk.Tk()
tree = ttk.Treeview(root, column=("c1", "c2", "c3"), show='headings')
tree.column("#1", anchor=tk.CENTER)
tree.heading("#1", text="ID")
tree.column("#2", anchor=tk.CENTER)
tree.heading("#2", text="FNAME")
tree.column("#3", anchor=tk.CENTER)
tree.heading("#3", text="LNAME")
tree.pack()
button1 = tk.Button(text="Показать данные", command=View)
button1.pack(pady=10)
root.mainloop()
Далее можнопросто создать пустой файл с расширением example.sqlite. Название и путь к базе прописываем в строке con1 = sqlite3.connect(""). Так же и название таблицы прописываем в строке cur1.execute("SELECT * FROM "). Название таблицы здесь table1. Таким образом можно вывести в окно графического интерфейса созданную нами же базу данных.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.