用python写一个注册登录图形界面并实现注册登录
时间: 2023-07-18 17:40:47 浏览: 63
好的,我可以为您提供一个完整的注册登录图形界面的Python代码示例,使用了Tkinter模块和sqlite3数据库:
```python
import tkinter as tk
import sqlite3
# 创建数据库连接
conn = sqlite3.connect("users.db")
cursor = conn.cursor()
# 创建用户表
cursor.execute('''CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT NOT NULL UNIQUE,
password TEXT NOT NULL)''')
# 创建主窗口
root = tk.Tk()
root.title("注册登录")
# 创建标签
label_username = tk.Label(root, text="用户名:")
label_username.grid(row=0, column=0)
label_password = tk.Label(root, text="密码:")
label_password.grid(row=1, column=0)
# 创建输入框
entry_username = tk.Entry(root)
entry_username.grid(row=0, column=1)
entry_password = tk.Entry(root, show="*")
entry_password.grid(row=1, column=1)
# 创建按钮
def register():
username = entry_username.get()
password = entry_password.get()
if username and password:
try:
cursor.execute("INSERT INTO users (username, password) VALUES (?, ?)", (username, password))
conn.commit()
tk.messagebox.showinfo("注册成功", "注册成功!")
except sqlite3.IntegrityError:
tk.messagebox.showerror("注册失败", "用户名已存在!")
else:
tk.messagebox.showerror("注册失败", "用户名和密码不能为空!")
button_register = tk.Button(root, text="注册", command=register)
button_register.grid(row=2, column=0)
def login():
username = entry_username.get()
password = entry_password.get()
if username and password:
cursor.execute("SELECT * FROM users WHERE username = ? AND password = ?", (username, password))
user = cursor.fetchone()
if user:
tk.messagebox.showinfo("登录成功", "欢迎回来,{}!".format(username))
else:
tk.messagebox.showerror("登录失败", "用户名或密码错误!")
else:
tk.messagebox.showerror("登录失败", "用户名和密码不能为空!")
button_login = tk.Button(root, text="登录", command=login)
button_login.grid(row=2, column=1)
# 运行主循环
root.mainloop()
# 关闭数据库连接
cursor.close()
conn.close()
```
这段代码创建了一个简单的窗口,包含用户名和密码标签、用户名和密码输入框、注册和登录按钮。当用户点击注册按钮时,程序会将用户名和密码插入到数据库中,如果用户名已存在则会提示错误;当用户点击登录按钮时,程序会检查用户名和密码是否正确,并给出相应的提示。您可以根据需要进一步完善这个程序,添加修改密码、注销等功能。