用户注册与登录

一、用户注册与登录

 1 import pymysql,hashlib,datetime
 2 
 3 #操作数据
 4 def op_mysql(sql,many=True):
 5     db_info = {'user': 'xmb', 'password': '123456', 'host': '127.0.0.0', 'db': 'xmb', 'port': 3306,
 6                'charset': 'utf8', 'autocommit': True}
 7     try:
 8         conn = pymysql.connect(**db_info)  #建立连接
 9     except Exception as e:
10         print("数据库连接失败",e)
11         return "数据库连接失败"
12     cur = conn.cursor(pymysql.cursors.DictCursor)  #建立游标
13     try:
14         cur.execute(sql)  #执行sql
15     except Exception as e:
16         print("sql错误,%s"%sql)
17         result = "sql错误,%s"%sql
18     else:
19         if many:
20             result = cur.fetchall()  #fetchall返回的是列表
21         else:
22             result = cur.fetchone()  #fetchone返回的是字典
23     finally:
24         cur.close()
25         conn.close()
26     return result
27 
28 #加密
29 def md5(s,salt=''):
30     new_s = str(s) + salt
31     m = hashlib.md5(new_s.encode())
32     return m.hexdigest()
33 
34 #用户注册
35 for i in range(3):
36     username = input('username:').strip()
37     pwd = input('password:').strip()
38     cpwd = input('password:').strip()
39     if username =='' or pwd == '' or cpwd =='':
40         print('输入不能为空')
41     elif pwd !=cpwd:
42         print("两次密码输入不一致")
43     else:
44         sql = "select username from app_myuser where username = '%s';"%username
45         if op_mysql(sql):
46             print('用户已被注册')
47         else:
48             new_password = md5(pwd)
49             insert_sql = 'insert into app_myuser(username,passwd) values ("%s",%s);'%(username,pwd)
50             op_mysql(insert_sql)
51             print("注册成功")
52             break
53 
54 
55 #用户登录
56 for i in range(6):
57     username = input("username:").strip()
58     pwd = input("password:").strip()
59     if username =='' or pwd =='':
60         print("用户名或密码输入不能为空")
61     else:
62         new_password = md5(pwd)
63         sql = 'select username,passwd,error_count from app_myuser where username="%s";'%username
64         reslut = op_mysql(sql,False)
65         if reslut:
66             if reslut.get('error_count') > 5:
67                 print('输入错误次数大于5次,账号被冻结')
68             elif new_password == reslut.get('passwd'):
69                 print('登录成功 %s'%datetime.datetime.today())
70                 up_sql = 'update app_myuser set error_count = 0 where username = "%s";'%username
71                 op_mysql(up_sql)
72                 break
73             else:
74                 up_sql = 'update app_myuser set error_count = error_count + 1 where username = "%s";'%username
75                 op_mysql(up_sql)
76                 print("账号或密码错误")
77         else:
78             print('用户不存在')

 

posted @ 2019-11-19 21:17  xmb  阅读(1541)  评论(0)    收藏  举报