简介
使用python写一个简单的redis和MySQL的验证登陆,我们要达到的目的有以下几种:
- 在MySQL中创建用户表,有用户名和密码字段
- 让用户输入用户名和密码进行登录,如果用户名和密码在表中存在则登录成功,否则输出登录失败
- 如果登录成功,则将登录信息缓存在redis中
- 以后用户的每次登录,都首先查询redis中是否有缓存
- 如果有就直接登录
- 如果没有就查询MySQL,用户则存在就将该用户信息缓存到redis
注意,MySQL中我选择了我的batabase为user,要拿走代码使用需要把表改成你自己库里的表名。
注意,redis中我选择了是我的默认db0 根据不同的库自行选择哦
#首先导入这两个库 import pymysql import redis #获取并封装MySQL验证功能 def Mysql(): conn = pymysql.connect(host='localhost', user='root', password='123456', database='user', port=3306, charset='utf8') cursor = conn.cursor() affected = cursor.execute("select * from username where account = '%s' and password = '%s'" % (user, password)) if affected == 1: print('登陆成功!') conn.close() return 1 else: print('输入错误,请核实账号或者密码是否正确!') conn.close() return 0 #获取到MySQL验证结果,验证成功便写入ridis def xieru(): n = Mysql() if n == 0: pass else: Redis.set(user,password) #获取输入的账号 user = input('输入您的账号') #获取输入的密码 password = input('输入您的密码') #获取redis库 Redis = redis.StrictRedis( host='localhost', port=6379, password='123456', db=0 ) #验证输入的账号是否存在redis键中,存在返回True,不存在返回False User = Redis.exists(user) #验证输入的账号是否存在ridis键中,存在返回值,不存在返回None Password =Redis.get(user) #判断 首先账号存在,并且值等于输入的密码,并且调用封装了获取到MySQL验证结果,验证成功便写入ridis的函数,一键搞定 if User == True and password == Password.decode() : print('恭喜您登陆成功!') else: xieru()