【原创】使用python写一个redis和mysql的简单交互验证登陆(纯手打,不足请见谅!)

简介

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

猜你喜欢

转载自blog.csdn.net/Python_anning/article/details/80374309