#作業3、寫一個注冊的功能,要求數據存在數據庫里面 # 1)、名字為空、已經存在都要校驗 # 2)、校驗通過之后,密碼要存成密文的 import pymysql import hashlib def CheckUserInSql(user): conn = pymysql.connect(host='118.24.3.40',user='jxz', password='123456',port=3306,db='jxz',charset='utf8') cur = conn.cursor(pymysql.cursors.DictCursor) #加了這個參數,返回值是字典形式的元組 sql = 'select * from app_myuser where username="%s";' %user # 查看數據庫是否以及存在user用戶 cur.execute(sql) #只是執行sql,並不會返回數據 res = cur.fetchall() cur.close() # 關閉游標 conn.close() # 關閉連接數據庫 if len(res) == 0: return True else: return False def isNotNone(user): if str(user).strip()=='': return False else: return True def StoreInSQL(user,pwd,admin): conn = pymysql.connect(host='118.24.3.40', user='jxz', password='123456', port=3306, db='jxz', charset='utf8') cur = conn.cursor(pymysql.cursors.DictCursor) # 加了這個參數,返回值是字典形式的元組 sql = 'insert into app_myuser (username,passwd,is_admin) values ("%s","%s",%d);'%(user,pwd,admin) cur.execute(sql) conn.commit() cur.close() conn.close() def my_md5(s): news = str(s).encode() m = hashlib.md5(news) return m.hexdigest() user = input('請輸入注冊的用戶名:') pwd = input('請輸入注冊密碼:') is_admin = int(input('請輸入注冊賬號的權限(0非管理員/1管理員):')) if isNotNone(user): if CheckUserInSql(user): pwdmd5 = my_md5(pwd) StoreInSQL(user,pwdmd5,is_admin) else: print('輸入的賬號已經存在!') else: print('輸入的賬號不能為空!') # 4、登陸的功能 # 登錄的賬號密碼從數據庫里面取, # 如果輸入用戶不存在要提示 def CheckUserInSql(user): conn = pymysql.connect(host='118.24.3.40',user='jxz', password='123456',port=3306,db='jxz',charset='utf8') cur = conn.cursor(pymysql.cursors.DictCursor) #加了這個參數,返回值是字典形式的元組 sql = 'select * from app_myuser where username="%s";' %user # 查看數據庫是否以及存在user用戶 cur.execute(sql) #只是執行sql,並不會返回數據 res = cur.fetchall() cur.close() # 關閉游標 conn.close() # 關閉連接數據庫 if len(res) == 0: return True, res else: return False, res def my_md5(s): news = str(s).encode() m = hashlib.md5(news) return m.hexdigest() user = input('請輸入登錄賬號:') pwd = input('請輸入登錄密碼:') pwdmd5 = my_md5(pwd) Condition, res = CheckUserInSql(user) if not Condition: if res[0]['passwd'] == pwdmd5: print('恭喜%s登錄成功!'%user) else: print('密碼錯誤!') else: print('賬號不存在!')