1 import pymysql, hashlib 2 class loginRegistration: 3 def __init__(self): 4 # 連接數據庫
5 self.bankData = pymysql.connect("127.0.0.1", "root", "123123", "user") 6 # 設置字符編碼
7 self.bankData.set_charset('utf8') 8 # 創建游標對象
9 self.cursor = self.bankData.cursor() 10
11 def registration(self): 12 # 查找login表所有數據
13 sql = 'select * from login'
14 # 運行sql句子
15 self.cursor.execute(sql) 16 # 如果數據為0
17 if self.cursor.rowcount == 0: 18 print('注冊用戶為0') 19 else: 20 print('注冊人數為', self.cursor.rowcount, "個") 21 userInputName = input('請輸入用戶名') 22 userInputPassword = input('請輸入密碼') 23 sql = 'select username from login where username="{}"'.format(userInputName) 24 self.cursor.execute(sql) 25 # 如果數據為0
26 if self.cursor.rowcount == 0: 27 # 調用md5加密
28 passwordMd5 = hashlib.md5() 29 passwordMd5.update(userInputPassword.encode('utf8')) 30 password = passwordMd5.hexdigest() 31 # 添加數據,用try來檢測提交是否成功
32 try: 33 sql = "insert into login(username,password) values('{}','{}' )".format(userInputName, password) 34 self.cursor.execute(sql) 35 # 提交服務器中
36 self.bankData.commit() 37 print("注冊成功") 38 except: 39 print("注冊失敗") 40 else: 41 print("用戶已存在") 42
43 def login(self): 44 sql = 'select * from login'
45 # 運行sql句子
46 self.cursor.execute(sql) 47 userInputName = input('請輸入用戶名') 48 userInputPassword = input('請輸入密碼') 49 sql = 'select username,password from login where username="{}"'.format(userInputName) 50 self.cursor.execute(sql) 51 passwordMd5 = hashlib.md5() 52 passwordMd5.update(userInputPassword.encode('utf8')) 53 password = passwordMd5.hexdigest() 54 # 如果數據為0
55 if self.cursor.rowcount == 0: 56 print("用戶不已存在") 57 elif self.cursor.fetchone()[1] != password: 58 print("密碼錯誤") 59 else: 60 print("登錄成功") 61
62
63 lr = loginRegistration() 64 while True: 65 print("1、注冊 2、登錄") 66 userinput = input("") 67 if userinput is "1": 68 lr.registration() 69 elif userinput is "2": 70 lr.login()