📜  使用 Tkinter 在Python中创建 MySQL 数据库登录页面(1)

📅  最后修改于: 2023-12-03 15:22:17.185000             🧑  作者: Mango

使用 Tkinter 在 Python 中创建 MySQL 数据库登录页面

简介

在 Python 中使用 Tkinter 模块可以轻松地创建用户界面。结合 MySQL 数据库之后,可以创建一个完整的登录页面,使用户能够通过输入正确的用户名和密码成功登录系统。

准备工作

在开始创建登录页面之前,我们需要安装和配置以下工具:

  • Python 3.x
  • Tkinter 模块
  • MySQL 数据库和 Python 的 MySQL 驱动程序(如 PyMySQL)

确保在开始创建登录页面之前安装并配置好以上工具。

创建登录页面

首先,导入 Tkinter 和 PyMySQL 模块:

import tkinter as tk
import pymysql

然后,我们需要创建登录页面的窗口,用于获取用户输入的用户名和密码:

# 创建窗口
root = tk.Tk()
root.geometry('400x300')
root.title('MySQL Login')

在窗口中添加标签和文本框,用于获取用户名和密码:

# 添加标签
label_user = tk.Label(root, text='Username')
label_user.pack()

# 添加文本框
entry_user = tk.Entry(root)
entry_user.pack()

# 添加标签
label_pass = tk.Label(root, text='Password')
label_pass.pack()

# 添加文本框
entry_pass = tk.Entry(root, show='*')
entry_pass.pack()

在窗口中添加按钮,用于执行登录的操作:

# 添加按钮
button_login = tk.Button(root, text='Login')
button_login.pack()

接下来,我们需要定义登录操作的函数 login,该函数将连接到 MySQL 数据库,并在用户输入正确的用户名和密码时显示一条成功的消息,否则显示一条失败的消息:

# 定义登录操作
def login():
    # 获取用户名和密码
    user = entry_user.get()
    password = entry_pass.get()

    # 连接到 MySQL 数据库
    conn = pymysql.connect(host='localhost', user='root', password='root', database='mydb')
    cursor = conn.cursor()

    # 查询用户表
    sql = f"SELECT COUNT(*) FROM users WHERE username = '{user}' AND password = '{password}'"
    cursor.execute(sql)

    # 检查用户名和密码是否正确
    result = cursor.fetchone()[0]
    if result:
        label_result.config(text='Login successfully!')
    else:
        label_result.config(text='Login failed!')

    # 关闭连接
    cursor.close()
    conn.close()

最后,在窗口中添加一个文本标签 label_result,用于显示登录结果:

# 添加结果标签
label_result = tk.Label(root, text='')
label_result.pack()

# 设置按钮的命令为登录操作函数
button_login.config(command=login)

# 运行窗口
root.mainloop()
完整代码
import tkinter as tk
import pymysql

# 创建窗口
root = tk.Tk()
root.geometry('400x300')
root.title('MySQL Login')

# 添加标签
label_user = tk.Label(root, text='Username')
label_user.pack()

# 添加文本框
entry_user = tk.Entry(root)
entry_user.pack()

# 添加标签
label_pass = tk.Label(root, text='Password')
label_pass.pack()

# 添加文本框
entry_pass = tk.Entry(root, show='*')
entry_pass.pack()

# 添加按钮
button_login = tk.Button(root, text='Login')
button_login.pack()

# 添加结果标签
label_result = tk.Label(root, text='')
label_result.pack()

# 定义登录操作
def login():
    # 获取用户名和密码
    user = entry_user.get()
    password = entry_pass.get()

    # 连接到 MySQL 数据库
    conn = pymysql.connect(host='localhost', user='root', password='root', database='mydb')
    cursor = conn.cursor()

    # 查询用户表
    sql = f"SELECT COUNT(*) FROM users WHERE username = '{user}' AND password = '{password}'"
    cursor.execute(sql)

    # 检查用户名和密码是否正确
    result = cursor.fetchone()[0]
    if result:
        label_result.config(text='Login successfully!')
    else:
        label_result.config(text='Login failed!')

    # 关闭连接
    cursor.close()
    conn.close()

# 设置按钮的命令为登录操作函数
button_login.config(command=login)

# 运行窗口
root.mainloop()
总结

在 Python 中使用 Tkinter 和 MySQL 驱动程序创建登录页面是一件很容易的事情,它可以为用户提供一个简单,易用和安全的登录方式。通过学习本篇文章,您可以快速了解如何使用 Tkinter 和 PyMySQL 模块创建登录页面,以及如何连接和查询 MySQL 数据库。