import tkinter as tk
import pymysql

class MyApp:
    def __init__(self):
        self.window = tk.Tk()
        self.herdid_t = tk.StringVar()
        self.herdname_t = tk.StringVar()
        self.creattime_t = tk.StringVar()

        tk.Label(self.window, text='herdid').grid(row=0, column=0)
        tk.Label(self.window, text='herdname').grid(row=1, column=0)
        tk.Label(self.window, text='creattime').grid(row=2, column=0)

        self.herdid_entry = tk.Entry(self.window, textvariable=self.herdid_t)
        self.herdid_entry.grid(row=0, column=1)
        self.herdname_entry = tk.Entry(self.window, textvariable=self.herdname_t)
        self.herdname_entry.grid(row=1, column=1)
        self.creattime_entry = tk.Entry(self.window, textvariable=self.creattime_t)
        self.creattime_entry.grid(row=2, column=1)

        self.select_button = tk.Button(self.window, text='查询', command=self.select)
        self.select_button.grid(row=3, columnspan=2)

        self.result_label = tk.Label(self.window, text='')
        self.result_label.grid(row=4, columnspan=2)

    def select(self):
        db = pymysql.connect(host='localhost', user='root', password='111111', port=3306, db='student', charset='utf8')
        cursor = db.cursor()
        sql = f"SELECT * FROM pigherd WHERE herdid='{self.herdid_t.get()}' OR herdname='{self.herdname_t.get()}' OR creattime='{self.creattime_t.get()}'"
        cursor.execute(sql)
        result = cursor.fetchone()
        self.result_label.config(text=result)
        db.close()

    def run(self):
        self.window.mainloop()

app = MyApp()
app.run()

代码功能解释:

  1. 导入必要的模块: import tkinter as tkimport pymysql 分别用于创建 GUI 界面和连接数据库。
  2. 创建 MyApp 类: 该类包含了 GUI 应用程序的所有逻辑。
  3. 构造函数 __init__:
    • 创建主窗口 self.window
    • 使用 tk.StringVar 创建变量,用于存储用户输入的猪群 ID、猪群名称和创建时间。
    • 创建标签和输入框,并将它们放置在窗口的指定位置。
    • 创建查询按钮,并绑定 self.select 方法作为点击事件的回调函数。
    • 创建一个标签,用于显示查询结果。
  4. select 方法:
    • 使用 pymysql 连接数据库。
    • 根据用户输入的条件构造 SQL 查询语句。
    • 执行查询并获取结果。
    • 使用 self.result_label.config(text=result) 将查询结果显示在标签中。
    • 关闭数据库连接。
  5. run 方法: 启动 GUI 应用程序的主循环,使界面保持响应状态。

代码说明:

  • 代码中使用了 f-string 格式化字符串,方便构造 SQL 查询语句。
  • fetchone() 方法用于获取查询结果的第一条记录。
  • 代码中使用了 tk.grid 布局管理器来管理窗口中控件的位置。
  • command=self.selectselect 方法绑定到按钮的点击事件上。
  • self.result_label.config(text=result) 用于将查询结果显示在标签中。

代码优化建议:

  • 可以添加错误处理机制,例如当数据库连接失败或查询语句错误时,显示错误信息。
  • 可以添加更多的功能,例如:
    • 查询所有猪群信息。
    • 按条件过滤查询结果。
    • 更新或删除猪群信息。
  • 可以将代码封装成一个独立的模块,以便更好地组织和复用。

总结:

该代码提供了一个简单的例子,展示了如何使用 Python Tkinter 和 PyMySQL 创建一个简单的 GUI 应用程序,通过输入查询条件从数据库中查询数据并显示结果。该代码可以作为学习 Tkinter 和 PyMySQL 的入门示例,并可以根据实际需要进行扩展和完善。


原文地址: http://www.cveoy.top/t/topic/pNCl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录