如何将SQL输出转换为python列表

2024-04-25 00:28:16 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上我有一个SQL数据库,包含5列不同的数据。 我试图做的是从我的SQL查询中获取数据并将其放入一个列表中,这样我就可以在tkinter的treeview小部件中显示它

问题:

  1. 有没有一种更简单的方法可以从SQL表中获取数据并在tkinter中以类似于表的格式显示?如果是,怎么做

  2. 使用treeview小部件在tkinter中创建表是一个好主意吗

  3. 如果没有,我应该使用什么小部件

我已尝试将SQL输出转换为列表,但它不断出现类似以下错误:

list index out of range

这是我的完整代码:

from tkinter import *
from tkinter import messagebox
from tkinter import ttk
import sqlite3

#lst = ['apple', 'banana', 'strawberry', 'avo', 'rasberry']

con = sqlite3.connect("user_info.db")
cur = con.cursor()
root = Tk()

tv = ttk.Treeview(root)
tv.pack()
tv.config(columns= ("name", 'age', 'email', 'town'))

tv.heading('#0', text='ID')
tv.column('#0', width = 100)

tv.heading('1', text = "Age")
tv.column('1', width = 100)

tv.heading('name', text = 'Name')
tv.column('name', width = 100)

tv.heading('2', text = "email")
tv.column("2", width = 100)

tv.heading('3', text = "Town")
tv.column("3", width = 100)

cur.execute('SELECT * FROM user')
fr = cur.fetchall()

print(fr)c
print(cur)
tv.insert("",'0', 'item1', text = fr[0])
tv.set('item1', 'name', fr[1])
tv.set('item1', 'age', fr[2])
tv.set('item1', 'email', fr[3])
tv.set('item1', 'town', fr[4])
root.mainloop()

对不起,布局很奇怪


Tags: textnamefromimportsql部件tkintercolumn