diff --git a/login.py b/login.py new file mode 100644 index 0000000..e9520d5 --- /dev/null +++ b/login.py @@ -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()