redis简单使用示例(附代码)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Areigninhell/article/details/84543386

输入用户名、密码

密码加密

判断redis中是否记录了用户名,如果有则成功

如果redis中没有用户名,则到mysql中查询

从mysql中查询成功后,将用户名记录到redis中

 

# coding=utf8
from RedisHelper import *
from MysqlHelper import *
from pwdUtl import pwdUtl

name = input("请输入用户:")
pwd = input("输入密码:")

pwd2 = pwdUtl(pwd)
try:
    # 查询redis中是否有此数据
    r = RedisHelper("127.0.0.1", 6379)
    # 判断redis中是否有这个用户和密码
    # 此处有一个问题就是用户名可能重复吗,答案是不会,
    # 在注册时,会用mysql语句判断,将此时数据库存储的是不重复的昵称和密码
    if not r.get(name):
        sel_sql = "select passwd from python3 where name=%s"
        m = MysqlHelper("localhost", 3306, 'python3', 'root', 'mysql')
        userpwd = m.fetchone(sel_sql, [name])[0]
        if userpwd:
            print("用户名错误")
        else:
            # 密码存在时,将数据存入redis数据库,实现了缓存
            r.set(name, userpwd)
            if userpwd == pwd2:
                print("密码正确")
            else:
                print("密码错误")
    else:
        r_pwd = r.get(name)
        r_pwd = r_pwd.decode('utf8')
        if r_pwd == pwd2:
            print("密码正确")
        else:
            print("密码错误")
except Exception as e:
    print(e)

# MysqlHelper.py	

# coding=utf-8
import pymysql
from redis import *


class MysqlHelper:

    def __init__(self, host='localhost', port=3306, db='test2', user='root', passwd='mysql', charset='utf8'):
        self.conn = pymysql.connect(
            host=host, port=port, db=db, user=user, passwd=passwd, charset=charset)

    def insert(self, sql, params):
        return self.__cud(sql, params)

    def update(self, sql, params):
        return self.__cud(sql, params)

    def delete(self, sql, params):
        return self.__cud(sql, params)

    def __cud(self, sql, params=[]):
        # try:
        cs1 = self.conn.cursor()
        rows = cs1.execute(sql, params)
        self.conn.commit()
        cs1.close()
        self.conn.close()
        return rows
        # except Exception,e:
        #     print e
        #     self.conn.rollback()

    def fetchone(self, sql, params=[]):
        # try:
        cs1 = self.conn.cursor()
        cs1.execute(sql, params)
        row = cs1.fetchone()
        cs1.close()
        self.conn.close()
        return row
        # except Exception as e:
        #     print(e)

    def fetchall(self, sql, params):
        # try:
        cs1 = self.conn.cursor()
        cs1.execute(sql, params)
        rows = cs1.fetchall()
        cs1.close()
        self.conn.close()

        return rows


class RedisHelper:

    def __init__(self, host='localhost', port=6379):
        self.redis = StrictRedis(host, port)

    def get(self, key):
        return self.redis.get(key)

    def set(self, key, value):
        self.redis.set(key, value)
# RedisHelper.py	# coding=utf8
from redis import *


class RedisHelper(object):

    def __init__(self, host, port):
        self.__redis = StrictRedis(host=host, port=port)
        # 初始化函数不用写返回值,默认返回self本身

    def set(self, key, value):
        self.__redis.set(key, value)

    def get(self, key):
        return self.__redis.get(key)
# pwdUtl.py	# coding=utf8
from hashlib import sha1


def pwdUtl(pwd):
    '''加密过程'''
    # 得到加密器
    s1 = sha1()
    # 加载要加密数据
    s1.update(pwd.encode('utf-8'))
    # 执行加密
    hpwd = s1.hexdigest()
    return hpwd

猜你喜欢

转载自blog.csdn.net/Areigninhell/article/details/84543386