import tkinter as tk from tkinter import messagebox import pymysql class SignIn(object): def __init__(self, root): self.root = root self.name = None self.password = None def the_Window(self, ): tk.Label(self.root, text=u"用户名(*):").grid(row=1, column=1, sticky='W') tk.Label(self.root, text=u"密码(*):").grid(row=2, column=1, sticky='W') self.name = tk.Entry(self.root) self.name.grid(row=1, column=2, sticky='W') self.password = tk.Entry(self.root, show="*") self.password.grid(row=2, column=2, sticky='W') tk.Button(self.root, text=u"登录", command=self.Login).grid(row=3, column=1, sticky='W') tk.Button(self.root, text=u"注册", command=self.Register).grid(row=3, column=2, sticky='W') tk.Label(self.root, text=u"(用户名只能出现字母,数字和下划线,不少于6位.)").grid(row=1, column=3, sticky='W') tk.Label(self.root, text=u"(密码只能出现字母,数字和下划线,不少于12位.)").grid(row=2, column=3, sticky='W') def Login(self): x = self.name.get() y = self.password.get() if len(x) == 0 or len(y) == 0: return conn = pymysql.Connect('localhost','root','123456','test',3306) sql_select = "select * from test_db" cur = conn.cursor() try: print(sql_select) cur.execute(sql_select) print(cur) rs = cur.fetchall() print(rs) for r in rs: if r[0] == x and r[1] == y: messagebox.showinfo(title=u"登录成功", message=u"登录成功") return elif r[0] == x and r[1] != y: messagebox.showerror(title=u"错误信息", message=u"密码错误") messagebox.showerror(title=u"error", message=u"当前用户不存在") except Exception as e: print(e) finally: cur.close() conn.close() def Register(self): x = self.name.get() y = self.password.get() if len(x) == 0 or len(y) == 0: return self.name.delete(0) self.password.delete(0) # print x, y conn = pymysql.Connect('localhost','root','123456','test',3306) sql_select = "select username from test_db" sql_insert = 'insert test_db(username,password) values("%s", "%s")' % (x, y) cur = conn.cursor() try: cur.execute(sql_select) rs = cur.fetchall() flag = 0 for r in rs: if r[0] == x: flag = 1 messagebox.showinfo(title=u"用户名错误", message=u"当前用户名存在,请修改") break if flag == 0: cur.execute(sql_insert) print(u"插入成功") conn.commit() except Exception as e: conn.rollback() print(e) finally: cur.close() conn.close() if __name__ == "__main__": root = tk.Tk() sign = SignIn(root) sign.the_Window() root.mainloop()