简介
使用python写一个简单的redis和MySQL的验证登陆,我们要达到的目的有以下几种:
- 在MySQL中创建用户表,有用户名和密码字段
- 让用户输入用户名和密码进行登录,如果用户名和密码在表中存在则登录成功,否则输出登录失败
- 如果登录成功,则将登录信息缓存在redis中如果登录成功,则将登录信息缓存在redis中
- 以后用户的每次登录,都首先查询redis中是否有缓存
- 如果有就直接登录
- 如果没有就查询MySQL,用户则存在就将该用户信息缓存到redis
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() #写入redis