Python Tkinter 大数据管理软件:使用 MySQL 连接器
以下是一个简单的例子,展示了如何使用 tkinter 和 mysql 连接和管理大量的数据。
首先,需要安装 mysql-connector-python 包,它是一个 Python MySQL 连接器,可用于连接和管理 MySQL 数据库。
安装 mysql-connector-python 包:
pip install mysql-connector-python
接下来,在 Python 代码中导入所需的模块:
import tkinter as tk
from tkinter import ttk
import mysql.connector
然后,创建一个 MySQL 连接并打开一个游标:
mydb = mysql.connector.connect(
  host='localhost',
  user='root',
  password='password',
  database='mydatabase'
)
mycursor = mydb.cursor()
在这里,我们使用了本地主机,用户名为'root',密码为'password',数据库名称为'mydatabase'。
接下来,我们创建一个 tkinter 窗口:
root = tk.Tk()
root.title('大数据管理软件')
然后,我们添加一些 tkinter 小部件,如标签、文本框、按钮和表格:
# 标签
label_name = ttk.Label(root, text='姓名:')
label_name.grid(column=0, row=0, padx=5, pady=5)
label_age = ttk.Label(root, text='年龄:')
label_age.grid(column=0, row=1, padx=5, pady=5)
# 文本框
entry_name = ttk.Entry(root)
entry_name.grid(column=1, row=0, padx=5, pady=5)
entry_age = ttk.Entry(root)
entry_age.grid(column=1, row=1, padx=5, pady=5)
# 按钮
button_add = ttk.Button(root, text='添加')
button_add.grid(column=0, row=2, padx=5, pady=5)
button_delete = ttk.Button(root, text='删除')
button_delete.grid(column=1, row=2, padx=5, pady=5)
# 表格
treeview = ttk.Treeview(root)
treeview['columns'] = ('name', 'age')
treeview.column('name', width=100)
treeview.column('age', width=100)
treeview.heading('name', text='姓名')
treeview.heading('age', text='年龄')
treeview.grid(column=0, row=3, columnspan=2, padx=5, pady=5)
在这里,我们创建了两个标签,两个文本框,两个按钮和一个表格。按钮将用于添加和删除数据,表格将用于显示数据。
接下来,我们定义两个函数,一个用于添加数据,另一个用于删除数据:
def add_data():
    name = entry_name.get()
    age = entry_age.get()
    sql = 'INSERT INTO customers (name, age) VALUES (%s, %s)'
    val = (name, age)
    mycursor.execute(sql, val)
    mydb.commit()
    print(mycursor.rowcount, '记录插入成功。')
    entry_name.delete(0, tk.END)
    entry_age.delete(0, tk.END)
    
treeview.insert('', 'end', text=name, values=(name, age))
def delete_data():
    selected_item = treeview.selection()[0]
    values = treeview.item(selected_item, 'values')
    name = values[0]
    sql = 'DELETE FROM customers WHERE name = %s'
    val = (name,)
    mycursor.execute(sql, val)
    mydb.commit()
    print(mycursor.rowcount, '记录删除成功。')
    treeview.delete(selected_item)
在这里,add_data() 函数将从文本框中获取姓名和年龄,将其插入到 MySQL 数据库中,并清除文本框。delete_data() 函数将从表格中获取所选行的姓名,从 MySQL 数据库中删除该行,并从表格中删除该行。
最后,我们将添加和删除按钮绑定到相应的函数,并从 MySQL 数据库中获取数据并将其添加到表格中:
# 添加和删除按钮绑定函数
button_add.config(command=add_data)
button_delete.config(command=delete_data)
# 从 MySQL 数据库中获取数据并将其添加到表格中
mycursor.execute('SELECT * FROM customers')
result = mycursor.fetchall()
for row in result:
    name = row[0]
    age = row[1]
    treeview.insert('', 'end', text=name, values=(name, age))
这样,我们就可以使用 tkinter 和 MySQL 连接器编写一个简单的大数据管理软件。
完整代码如下:
import tkinter as tk
from tkinter import ttk
import mysql.connector
# MySQL 连接
mydb = mysql.connector.connect(
  host='localhost',
  user='root',
  password='password',
  database='mydatabase'
)
mycursor = mydb.cursor()
# tkinter 窗口
root = tk.Tk()
root.title('大数据管理软件')
# 标签
label_name = ttk.Label(root, text='姓名:')
label_name.grid(column=0, row=0, padx=5, pady=5)
label_age = ttk.Label(root, text='年龄:')
label_age.grid(column=0, row=1, padx=5, pady=5)
# 文本框
entry_name = ttk.Entry(root)
entry_name.grid(column=1, row=0, padx=5, pady=5)
entry_age = ttk.Entry(root)
entry_age.grid(column=1, row=1, padx=5, pady=5)
# 按钮
button_add = ttk.Button(root, text='添加')
button_add.grid(column=0, row=2, padx=5, pady=5)
button_delete = ttk.Button(root, text='删除')
button_delete.grid(column=1, row=2, padx=5, pady=5)
# 表格
treeview = ttk.Treeview(root)
treeview['columns'] = ('name', 'age')
treeview.column('name', width=100)
treeview.column('age', width=100)
treeview.heading('name', text='姓名')
treeview.heading('age', text='年龄')
treeview.grid(column=0, row=3, columnspan=2, padx=5, pady=5)
# 添加和删除函数
def add_data():
    name = entry_name.get()
    age = entry_age.get()
    sql = 'INSERT INTO customers (name, age) VALUES (%s, %s)'
    val = (name, age)
    mycursor.execute(sql, val)
    mydb.commit()
    print(mycursor.rowcount, '记录插入成功。')
    entry_name.delete(0, tk.END)
    entry_age.delete(0, tk.END)
    
treeview.insert('', 'end', text=name, values=(name, age))
def delete_data():
    selected_item = treeview.selection()[0]
    values = treeview.item(selected_item, 'values')
    name = values[0]
    sql = 'DELETE FROM customers WHERE name = %s'
    val = (name,)
    mycursor.execute(sql, val)
    mydb.commit()
    print(mycursor.rowcount, '记录删除成功。')
    treeview.delete(selected_item)
# 添加和删除按钮绑定函数
button_add.config(command=add_data)
button_delete.config(command=delete_data)
# 从 MySQL 数据库中获取数据并将其添加到表格中
mycursor.execute('SELECT * FROM customers')
result = mycursor.fetchall()
for row in result:
    name = row[0]
    age = row[1]
    treeview.insert('', 'end', text=name, values=(name, age))
root.mainloop()
原文地址: https://www.cveoy.top/t/topic/oe9k 著作权归作者所有。请勿转载和采集!