@ProgramistNoob
Начинающий программист

Как создать БД на python?

Подскажите как создать код, который будет выводить определённый пункт из определённой БД в таблицу созданную с помощью Tkinter (Treeview). БД создана на Access. Уже использованные скрипты прилагаю. В некоторых просто не разобрался куда какое название пихать)
На всякий случай, название БД - List, таблиц - Books, Users, подпункты Books - Авторы, Название, ISBN, Издательство, Год выпуска, Кол-во, Остаток; подпункты Users - Фамилия, Имя, Отчество, Год рождения, Класс, Параллель (Приложение создаётся для школы). Заранее спасибо
spoiler
import sqlite3
import tkinter as tk
import tkinter.ttk as ttk
  
  
class Table(tk.Frame):
    def __init__(self, parent=None, headings=tuple(), rows=tuple()):
        super().__init__(parent)
  
        table = ttk.Treeview(self, show="headings", selectmode="browse")
        table["columns"] = headings
        table["displaycolumns"] = headings
  
        for head in headings:
            table.heading(head, text=head, anchor=tk.CENTER)
            table.column(head, anchor=tk.CENTER)
  
        for row in rows:
            table.insert('', tk.END, values=tuple(row))
  
        scrolltable = tk.Scrollbar(self, command=table.yview)
        table.configure(yscrollcommand=scrolltable.set)
        scrolltable.pack(side=tk.RIGHT, fill=tk.Y)
        table.pack(expand=tk.YES, fill=tk.BOTH)
  
data = ('Users')
with sqlite3.connect('test.db') as connection:
    cursor = connection.cursor()
    cursor.execute("SELECT * FROM Users")
    data = (row for row in cursor.fetchall())

root = tk.Tk()
table = Table(root, headings=('Фамилия', 'Имя', 'Отчество'), rows=data)
table.pack(expand=tk.YES, fill=tk.BOTH)
root.mainloop()


spoiler
import adodbapi
 
database = "db1.mdb"
constr = 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=%s'
tablename = "address"
 
conn = adodbapi.connect(constr)
 
cur = conn.cursor()
 
sql = "select * from %s" % tablename
cur.execute(sql)

result = cur.fetchall()
for item in result:
    print item
 
cur.close()
conn.close()
  • Вопрос задан
  • 246 просмотров
Пригласить эксперта
Ответы на вопрос 1
@kiriharu
Python backend, Linux enjoyer
Насколько я помню, подключиться к БД на Acсess можно при помощи pyodbc.

import pyodbc

conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Users\kiriharu\Desktop\testdb.accdb;')
cursor = conn.cursor()
cursor.execute('select * from sometable')
   
for row in cursor.fetchall():
    print (row)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы