1.redis_check.py

# coding:utf-8

import pymysql
import redis
import sys def con_mysql(sql):
db = pymysql.connect(host='192.168.8.102',
user='root',
passwd='root',
port=3306,
db='test',
charset='utf8', )
cursor = db.cursor()
data = cursor.execute(sql)
db.close()
return data def con_redis(name, passwd):
pool = redis.ConnectionPool(host='192.168.8.102',
port=6379,
password='root', )
r = redis.Redis(connection_pool=pool)
r_passwd = r.hget(name, name)
if not r_passwd:
return False, '登录失败'
if passwd == r_passwd.decode('utf8'):
return True, '登录成功'
else:
return False, '登录失败' def main(name, passwd):
# name = sys.argv[1]
# passwd = sys.argv[2]
result = con_redis(name, passwd)
if not result[0]:
sql = '''select name from tb_login where name="%s" and passwd="%s"''' % (name, passwd)
data = con_mysql(sql)
if data:
pool = redis.ConnectionPool(host='192.168.8.102',
port=6379,
password='root', )
r = redis.Redis(connection_pool=pool)
r.hset(name, name, passwd)
# print('redis数据更新成功,账号密码正确!')
return True
else:
# print('账号或者密码错误!')
return False
else:
# print('登录成功!')
return True if __name__ == '__main__':
main()

2.视图路由urls.py

url(r'^log/(?P<user_dict>\w{1,12}/\w{1,23})/$', views.log)

3.视图views.py

def log(request, user_dict):
if request.method == "GET":
name, passwd = user_dict.split("/")
print(name,passwd)
res = redis_check.main(name, passwd)
print(res)
if res:
return HttpResponse("ok")
else:
return HttpResponse("error")

4.测试

http://127.0.0.1:8000/log/zq/zq/

Django Redis配合Mysql验证用户登录的更多相关文章

  1. Redis缓存Mysql模拟用户登录Java实现实例[www]

    Redis缓存Mysql模拟用户登录Java实现实例 https://jingyan.baidu.com/article/09ea3ede1dd0f0c0aede3938.html redis+mys ...

  2. Redis缓存Mysql模拟用户登录Java实现实例

    https://blog.csdn.net/suneclipse/article/details/50920396

  3. 单点登录CAS使用记(三):实现自定义验证用户登录

    问题: CAS自带的用户验证逻辑太过简单,如何像正常网站一样,通过验证DB中的用户数据,来验证用户以及密码的合法性呢? 方案1:CAS默认的JDBC扩展方案: CAS自带了两种简单的通过JDBC方式验 ...

  4. Asp.Net使用加密cookie代替session验证用户登录状态 源码分享

    首先 session 和 cache 拥有各自的优势而存在.  他们的优劣就不在这里讨论了. 本实例仅存储用户id于用户名,对于多级权限的架构,可以自行修改增加权限字段   本实例采用vs2010编写 ...

  5. easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)

    easyui datagrid 禁止选中行   没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...

  6. MVC4项目中验证用户登录一个特性就搞定

    在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用方对操作方法的访问. [AttributeUsage(Attribu ...

  7. MVC4验证用户登录特性实现方法

    在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用方对操作方法的访问. [AttributeUsage(Attribu ...

  8. 转:C4项目中验证用户登录一个特性就搞定

    转:C4项目中验证用户登录一个特性就搞定   在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性.     // 摘要:    //     表示一个特性,该特性用于限制调用 ...

  9. .net MVC使用Session验证用户登录(转载)

    .net MVC使用Session验证用户登录   用最简单的Session方式记录用户登录状态 1.添加DefaultController控制器,重写OnActionExecuting方法,每次访问 ...

随机推荐

  1. (转)Python标准库02 时间与日期 (time, datetime包)

    原文:http://www.cnblogs.com/vamei/archive/2012/09/03/2669426.html https://www.liaoxuefeng.com/wiki/001 ...

  2. [转]Elasticsearch Java API总汇

    http://blog.csdn.net/changong28/article/details/38445805#comments 3.1 集群的连接 3.1.1 作为Elasticsearch节点 ...

  3. linux安装扩展总结

    ---恢复内容开始--- 1.安装php 模块安装命令. wget http://pear.php.net/go-pear 执行 php go_pear 如果是php7 wget http://pea ...

  4. php 页面 不显示任何错误提示

    error_reporting(0); ini_set('html_errors',false); ini_set('display_errors',false);

  5. PHP 如何 安全配置

    配置选项 phpinfo( ) 函数可用于php.ini文件的定位 A.1. allow_url_fopen 选项允许你如同本地文件一样引用远程资源: 我推荐关闭allow_url_fopen选项,除 ...

  6. Oracle 数据库实例

    Oracle- 数据库的实例,表空间,用户,表之间的关系 一.完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例 1.数据库是一些列物理文件的集合(数据文件,控制文件,联机文件, ...

  7. javac之BridgeMethod及泛型擦除重写

    When compiling a class or interface that extends a parameterized class or implements a parameterized ...

  8. C/C++ -- Gui编程 -- Qt库的使用 -- QtWidget

    #include<QtGui> int main(int argc, char * argv[]) { QApplication app(argc, argv); QTextCodec:: ...

  9. Nodejs学习笔记(六)—Node.js + Express 构建网站预备知识

    前言 前面经过五篇Node.js的学习,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识! 主要是些基础的东西... 如何去创建路由规则.如何去提交表单并接收表单项的值.如何去给密 ...

  10. Socket编程 - 网络基础知识

    API编程部分:http://www.cnblogs.com/Jimmy1988/p/7895213.html 1. 协议简介 此处,我们主要介绍Linux编程常用的三种协议(TCP/UDP/IP), ...