scaner 1 year ago
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…
Cancel
Save