一、什么是状态保持?!

所谓的状态保持就是,服务端存储用户身份信息

所谓的身份认证就是,服务端依据状态保持信息,认证出用户身份

二、实现状态保持的方案

Cookie和Session的相同点:(1)、状态保持;(2)、缓存数据

1、使用Cookie实现状态保持

2、使用Session机制实现状态保持

业务:需要做保持登录状态/状态保持功能.
保持登录状态可以使用 cookie 或 session 来实现
但是 cookie 不安全, 所以我们使用 session 保存.
django 中有提供 session 来状态保持的方法: login( )

login( ) 方法实现状态保持方式:

  • 把用户信息保存至 session
  • 把 session 的 sessionid 存放至 cookie
  • 把 cookie 放到响应中. 会随着响应返回给前端浏览器

login() 使用方式:

# 导入:
from django.contrib.auth import login
# 调用:
login(request, user)

三、查看状态保持结果

1. cookie 中有 sessionid 的值:(以下为举例)

2. cookie所在位置


3. session所在位置

4. session 的值也保存到了 redis 中(以下仅为示例):

  • 由以上图片内容, 可知:
  • login( ) 帮助我们把 user 的信息写入到 session 中去了
  • 而且也帮助我们把 sessionid 保存到了 cookie 中
  • 所以我们可以在 cookie 中获取 sessionid
  • 也可以在 redis 中查看 session 的保存情况

四、django中配置redis

1. 安装 django-redis 扩展包

pip install django-redis
  • django-redis官方中文文档

2. 配置redis数据库

CACHES = {# 默认存储信息: 存到 0 号库"default": { "BACKEND": "django_redis.cache.RedisCache","LOCATION": "redis://127.0.0.1:6379/0","OPTIONS": {"CLIENT_CLASS": "django_redis.client.DefaultClient",}},# session 信息: 存到 1 号库"session": { "BACKEND": "django_redis.cache.RedisCache","LOCATION": "redis://127.0.0.1:6379/1","OPTIONS": {"CLIENT_CLASS": "django_redis.client.DefaultClient",}},
}
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "session"

default:

  • 默认的 Redis 配置项,采用 0 号 Redis 库

session:

  • 状态保持的 Redis 配置项,采用 1 号 Redis 库。

SESSION_ENGINE:

  • 修改 session 存储机制使用 Redis 保存。

SESSION_CACHE_ALIAS:

  • 使用名为"session"的Redis配置项存储session数据。

【python】cookie和session实现状态保持(django中)相关推荐

  1. cookie和session 以及Django中应用

    cookie和session 以及Django中应用 cookie和session机制 cookie和session机制 cookie机制采用的是在客户端保持状态的方案.作用就是为了解决HTTP协议无 ...

  2. Django - Cookie和Session

    Django - Cookie和Session cookie Django中操作Cookie Cookie版登陆校验 Session Django中Session相关方法 Session流程解析 Se ...

  3. 用 Python 描述 Cookie 和 Session

    这篇文章我们来聊聊Cookie和Session,网上有很多关于这两个知识点的描述,可惜的是大部分都没有示例代码,因此本文的重点在于示例代码. 环境 Python3.6.0 Bottle0.12.15 ...

  4. Day 63 django 中间件、cookie、session

    Day 63 django 中间件.cookie.session 文章目录 Day 63 django 中间件.cookie.session 1.cookie与session 简介 2.django操 ...

  5. 15. cookie、session、token

    cookie.session.token 一.cookie 1.cookie的由来 2.cookie是什么? 3.cookie的原理 4.Cookie规范 4.django中操作cookie(增删改查 ...

  6. Python视频学习(十二、Django)

    目录 0 背景 0.1 MVC框架 0.2 Django 1. 虚拟环境 2. ★第一个Django案例 2.1 创建项目 a. 创建项目 项目目录说明 b. 创建app 目录说明 c. 安装应用 d ...

  7. 【Django】Django中cookies、session和token实现demo

    一.cookies和session HTTP是一种无状态的协议,客户端向服务端发起请求,在通过用户名和密码进行用户认证后,HTTP协议不会记录认证状态,所以用户在下次请求时还是需要再次认证.为了能够保 ...

  8. Cookie、Session和自定义分页

    cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...

  9. 设置cookie存活时间_Django之cookie、session、token

    客户端会话技术:cookie 服务端会话技术:session 自定义会话技术:token 一.cookie cookie本身由服务器端生成,通过Response将cookie写到浏览器上,下一次再次访 ...

  10. 深入理解cookie和session

    cookie和session在java web开发中扮演了十分重要的作用,本篇文章对其中的重要知识点做一些探究和总结.(转发自https://www.cnblogs.com/roy-blog/p/82 ...

最新文章

  1. 【计算理论】计算理论总结 ( P 、NP 、NPC 总结 ) ★★
  2. Docker(五)如何构建Dockerfile
  3. 使用Notepad++开发C#,一个复杂点的csscript脚本
  4. Debian Linux下的Python学习——入门
  5. awk正则匹配nginx日志【原创】
  6. 【转载】程序员历史之一
  7. 面向数据科学的概率论 二、计算几率
  8. java 异步查询转同步多种实现方式:循环等待,CountDownLatch,Spring EventListener,超时处理和空循环性能优化...
  9. 使用canvas 画钟表
  10. webpack output.publicPath
  11. python写微信小程序商城,oejia_weshop
  12. 小奇的矩阵(动态规划
  13. Ramnit 蠕虫分析
  14. 【Linux学习】信号——信号保存 | 信号处理 | 不可重入函数,volatile,SIGCHLD信号
  15. Python利用Face++实现身份证件图片识别
  16. e3服务器性能怎么样,Inte至强 E3-1230 V3性能怎么样?跟 i7 相比呢?
  17. php 面试,PHP 经典面试题集
  18. 专科入行软件测试可行么
  19. 小程序的gridview布局
  20. 一个简单的三子棋游戏

热门文章

  1. 从3D打印到python编程 从opencv到人脸识别 从win10到树莓派ubuntu (全教程附代码)
  2. 图像处理---LoMo
  3. Linux系统下ROMS安装流程与例程运行
  4. 使用Kinect2作为Oculus游戏应用的输入设备
  5. 万字攻略,详解腾讯面试
  6. 去除黄褐斑的方法,姬净美怎么样
  7. 2017年个人看书学习计划
  8. 钱钟书论“反者道之动”
  9. 大疆livox定制的格式CustomMsg格式转换pointcloud2
  10. 'MPD' object has no attribute 'myIP'