连接数据库user表,进行登录

1.连接数据库,获取用户信息,判断用户是否存在,存在则登录,username,password

2.每登录失败一次,错误次数+1,错误次数大于等于5,提示用户被冻结

import pymysql,hashlib,datetime
today = datetime.datetime.today()

def op_mysql(sql):
    db_info = {'user': 'xxx', 'password': 'xxxxxx',
            'host': '127.0.0.1', 'db': 'xxx', 'port': 3306, 'charset': 'utf8',
            'autocommit': True}
    conn = pymysql.connect(**db_info)  # 建立连接
    cur = conn.cursor(pymysql.cursors.DictCursor)  # 游标
    cur.execute(sql)  # 执行sql语句,insert 、update 、delete
    result = cur.fetchall()
    cur.close()
    conn.close()
    return result

for i in range(3):
    username = input('请输入用户名:').strip()
    password = input('请输入密码:').strip()
    ha_pwd = hashlib.md5(password.encode())
    md5_pwd = ha_pwd.hexdigest()
    sql1 = 'select * from user where username="%s";' % (username)
    if username == '' or password == '':
        print('用户名或密码不能为空')
    elif not op_mysql(sql1):
        print('账号不存在')
    elif op_mysql(sql1):
        if op_mysql(sql1)[0].get('error_count')<5:
            if md5_pwd==op_mysql(sql1)[0].get('password'):
                print( '欢迎 %s登录,今天的日期是 %s' % (username, today))
                break
            else:
                new_count = op_mysql(sql1)[0].get('error_count')+1
                sql3 = 'update user set error_count= "%s" where username="%s";'%(new_count,username)
                op_mysql(sql3)
                print('密码不正确')
        else:
            print('用户被冻结')
else:
    print('登录失败次数超过3次,不允许登录')

猜你喜欢

转载自www.cnblogs.com/cathyg/p/11780029.html