tkinter Treeview将mysql数据放入一列

时间:2018-11-08 14:38:53

标签: python mysql tkinter treeview

因此,我已经环顾了几天,并尝试了各种其他方法来解决其他人的问题,这些问题似乎与我自己的问题相同,但是不幸的是我没有取得任何进展。我对python,tkinter和mysqli数据库还是很陌生。我想做的就是有一个库存计划,就是这么简单。您可以登录并添加,删除或仅查看数据库中的内容。我可以添加和删除项目,但在将数据提取到正确的列中时遇到问题。

到目前为止,我已经尝试将每个变量作为一个变量并进行相应的分配,尝试一次仅抽取一行,甚至切换到新数据库,但都没有正确的结果。如果我使用sqlite 3,它可以正常工作,是因为mysql在服务器上而不是在本地吗?无论如何,我想要一些指导以正确的方向指导我,因此我们将不胜感激。 This is what happens when I run the program 编辑:

 tree.insert("", 1, "dirIso", text="ProductID")
for n, dirIso in enumerate(results,1):
    list_of_column_values = [list(_dict.values())[0] for _dict in dirIso]
    tree.insert('dirIso', n, text=list_of_column_values[0],
                values=list_of_column_values[1:])
cursor.close()
conn.close()

这就是我所做的,我现在得到一个没有属性“值”的“ str”对象。我需要更改n吗?还是在数据库中查找名称作为值而不是列?

我要获取的结果是表格显示每个项目各自的数据。

1 个答案:

答案 0 :(得分:0)

  

问题:Treeview正在将mysql数据放入一列


编辑您的问题,如果您的results与以下内容不同,则会显示三行results数据。

  

假设以下results中的list == dict

 results = [{'produkt_id': '1234', 'Name': 'John', 'Address': 'NewYork'},
            {'produkt_id': '5678', 'Name': 'Peter', 'Address': 'Boston'}
           ]

您不需要树头,因为您需要 Tabelview

# Dict's are unordered, 
# therfore you need a list of fieldnames in your desired order
fieldnames = ['produkt_id', 'Name', 'Address']

# Loop results
for n, _dict in enumerate(results,1):
    # Create a list of values from this _dict
    _list = []
    for key in fieldnames:
        _list.append(_dict[key])

    # The first value goes to 'text'
    # All others goes to 'values'
    tree.insert('', 'end', n, text=_list[0], values=_list[1:])
  

输出

1234  John     NewYork
5678  Peter    Boston