parent
9ca10d4cc9
commit
584412b9d3
@ -0,0 +1,92 @@
|
||||
import tkinter as tk
|
||||
from tkinter import messagebox
|
||||
import pymysql
|
||||
|
||||
class Application(tk.Frame):
|
||||
def __init__(self, master=None):
|
||||
super().__init__(master)
|
||||
self.master = master
|
||||
self.pack()
|
||||
self.create_widgets()
|
||||
|
||||
def create_widgets(self):
|
||||
self.label_username = tk.Label(self, text="Username:")
|
||||
self.label_username.grid(row=0, column=0)
|
||||
|
||||
self.entry_username = tk.Entry(self)
|
||||
self.entry_username.grid(row=0, column=1)
|
||||
|
||||
self.label_password = tk.Label(self, text="Password:")
|
||||
self.label_password.grid(row=1, column=0)
|
||||
|
||||
self.entry_password = tk.Entry(self, show="*")
|
||||
self.entry_password.grid(row=1, column=1)
|
||||
|
||||
self.register_button = tk.Button(self, text="Register", command=self.register_user)
|
||||
self.register_button.grid(row=2, column=1)
|
||||
|
||||
self.login_button = tk.Button(self, text="Login", command=self.login_user)
|
||||
self.login_button.grid(row=3, column=1)
|
||||
|
||||
def register_user(self):
|
||||
username = self.entry_username.get()
|
||||
password = self.entry_password.get()
|
||||
|
||||
self.save_to_db(username, password)
|
||||
self.clear_fields()
|
||||
|
||||
def login_user(self):
|
||||
username = self.entry_username.get()
|
||||
password = self.entry_password.get()
|
||||
|
||||
self.validate_credentials(username, password)
|
||||
self.clear_fields()
|
||||
|
||||
def save_to_db(self, username, password):
|
||||
# 连接数据库
|
||||
db = pymysql.connect(host='localhost',
|
||||
user='your_username',
|
||||
password='your_password',
|
||||
database='your_database',
|
||||
charset='utf8mb4')
|
||||
|
||||
try:
|
||||
with db.cursor() as cursor:
|
||||
sql = "INSERT INTO users (username, password) VALUES (%s, %s)"
|
||||
cursor.execute(sql, (username, password))
|
||||
db.commit()
|
||||
messagebox.showinfo("Registration", "User registered successfully!")
|
||||
except Exception as e:
|
||||
messagebox.showerror("Registration", f"Error: {e}")
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
def validate_credentials(self, username, password):
|
||||
# 连接数据库
|
||||
db = pymysql.connect(host='localhost',
|
||||
user='your_username',
|
||||
password='your_password',
|
||||
database='your_database',
|
||||
charset='utf8mb4')
|
||||
|
||||
try:
|
||||
with db.cursor() as cursor:
|
||||
sql = "SELECT * FROM users WHERE username=%s AND password=%s"
|
||||
cursor.execute(sql, (username, password))
|
||||
result = cursor.fetchone()
|
||||
if result:
|
||||
messagebox.showinfo("Login", "Login successful!")
|
||||
else:
|
||||
messagebox.showerror("Login", "Invalid credentials.")
|
||||
except Exception as e:
|
||||
messagebox.showerror("Login", f"Error: {e}")
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
def clear_fields(self):
|
||||
self.entry_username.delete(0, tk.END)
|
||||
self.entry_password.delete(0, tk.END)
|
||||
|
||||
root = tk.Tk()
|
||||
app = Application(master=root)
|
||||
app.mainloop()
|
Loading…
Reference in new issue