用python中的tkinter生成一个用户登录注册界面,要求可选择的用户类型有顾客、商家与外卖员三种,要求结合数据库mysql进行编写,用户的账号密码都存储在数据库中
时间: 2024-02-21 09:57:36 浏览: 75
好的,下面是一个基于Python Tkinter 和 MySQL 数据库实现的用户登录注册界面示例代码:
```python
import tkinter as tk
import mysql.connector
# 连接MySQL数据库
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydatabase"
)
# 创建一个Tkinter窗口对象
root = tk.Tk()
root.title("用户登录注册界面")
# 定义登录函数
def login():
username = username_entry.get()
password = password_entry.get()
user_type = user_type_var.get()
cursor = mydb.cursor()
sql = "SELECT * FROM user WHERE username = %s AND password = %s AND user_type = %s"
val = (username, password, user_type)
cursor.execute(sql, val)
result = cursor.fetchone()
if result:
result_label.config(text="登录成功")
else:
result_label.config(text="登录失败")
# 定义注册函数
def register():
username = username_entry.get()
password = password_entry.get()
user_type = user_type_var.get()
cursor = mydb.cursor()
sql = "INSERT INTO user (username, password, user_type) VALUES (%s, %s, %s)"
val = (username, password, user_type)
cursor.execute(sql, val)
mydb.commit()
result_label.config(text="注册成功")
# 创建用户名输入框和标签
username_label = tk.Label(root, text="用户名:")
username_label.grid(row=0, column=0)
username_entry = tk.Entry(root)
username_entry.grid(row=0, column=1)
# 创建密码输入框和标签
password_label = tk.Label(root, text="密码:")
password_label.grid(row=1, column=0)
password_entry = tk.Entry(root, show="*")
password_entry.grid(row=1, column=1)
# 创建用户类型选择框和标签
user_type_var = tk.StringVar()
user_type_label = tk.Label(root, text="用户类型:")
user_type_label.grid(row=2, column=0)
user_type_entry = tk.OptionMenu(root, user_type_var, "顾客", "商家", "外卖员")
user_type_entry.grid(row=2, column=1)
# 创建登录和注册按钮
login_button = tk.Button(root, text="登录", command=login)
login_button.grid(row=3, column=0)
register_button = tk.Button(root, text="注册", command=register)
register_button.grid(row=3, column=1)
# 创建登录结果标签
result_label = tk.Label(root, text="")
result_label.grid(row=4, columnspan=2)
# 运行Tkinter窗口
root.mainloop()
# 关闭MySQL数据库连接
mydb.close()
```
在代码中,我们首先通过`mysql.connector`模块连接到MySQL数据库。然后,我们创建了一个Tkinter窗口,包含用户名输入框、密码输入框、用户类型选择框、登录按钮、注册按钮和登录结果标签。当用户点击登录或注册按钮时,程序会根据用户输入的用户名、密码和用户类型查询或插入数据库中的用户信息,然后根据查询结果或插入结果更新登录结果标签的文本。最后,我们在程序结束时关闭MySQL数据库连接。
请注意,这只是一个简单的示例代码,实际的用户登录注册系统需要更加复杂和安全。例如,需要进行密码加密、用户名和密码的验证、防止SQL注入攻击等。
阅读全文