用tkinter创造一个可供查询的数据库
时间: 2024-05-02 18:17:20 浏览: 88
python+tkinter实现停车场管理系统,GUI界面操作带数据库
5星 · 资源好评率100%
好的,以下是一个使用 Python 和 Tkinter 创建简单数据库查询界面的示例代码:
```python
import tkinter as tk
import sqlite3
# 连接到数据库
conn = sqlite3.connect('example.db')
# 创建表
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS people
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER)''')
# 插入数据
c.execute("INSERT INTO people (name, age) VALUES (?, ?)", ('Alice', 25))
c.execute("INSERT INTO people (name, age) VALUES (?, ?)", ('Bob', 35))
c.execute("INSERT INTO people (name, age) VALUES (?, ?)", ('Charlie', 45))
conn.commit()
# 创建查询界面
class QueryWindow:
def __init__(self, master):
self.master = master
master.title('Database Query')
# 创建输入框和标签
self.name_label = tk.Label(master, text='Name:')
self.name_label.grid(row=0, column=0, padx=5, pady=5)
self.name_entry = tk.Entry(master)
self.name_entry.grid(row=0, column=1, padx=5, pady=5)
self.age_label = tk.Label(master, text='Age:')
self.age_label.grid(row=1, column=0, padx=5, pady=5)
self.age_entry = tk.Entry(master)
self.age_entry.grid(row=1, column=1, padx=5, pady=5)
# 创建查询按钮
self.query_button = tk.Button(master, text='Query', command=self.query)
self.query_button.grid(row=2, column=0, padx=5, pady=5)
# 创建结果框
self.result_text = tk.Text(master, height=10, width=30)
self.result_text.grid(row=3, column=0, columnspan=2, padx=5, pady=5)
# 查询方法
def query(self):
# 获取查询条件
name = self.name_entry.get()
age = self.age_entry.get()
# 拼接 SQL 语句
sql = 'SELECT * FROM people WHERE 1=1'
if name:
sql += ' AND name = "{}"'.format(name)
if age:
sql += ' AND age = {}'.format(age)
# 执行查询
c.execute(sql)
results = c.fetchall()
# 清空结果框
self.result_text.delete('1.0', tk.END)
# 显示查询结果
for row in results:
self.result_text.insert(tk.END, 'ID: {}\nName: {}\nAge: {}\n\n'.format(row[0], row[1], row[2]))
# 创建主窗口和查询界面
root = tk.Tk()
query_window = QueryWindow(root)
# 运行主循环
root.mainloop()
# 关闭数据库连接
conn.close()
```
这个示例程序使用 Tkinter 创建了一个简单的数据库查询界面,用户可以输入名字和年龄作为查询条件,点击“查询”按钮后,程序会根据条件查询数据库,并在结果框中显示查询结果。在这个示例中,我们使用了 SQLite 数据库,但是你也可以将代码中的数据库连接和查询语句修改为适合你自己的数据库。
阅读全文