【python】cookie和session实现状态保持(django中)
一、什么是状态保持?!
所谓的状态保持就是,服务端存储用户身份信息;
所谓的身份认证就是,服务端依据状态保持信息,认证出用户身份;
二、实现状态保持的方案
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中)相关推荐
- cookie和session 以及Django中应用
cookie和session 以及Django中应用 cookie和session机制 cookie和session机制 cookie机制采用的是在客户端保持状态的方案.作用就是为了解决HTTP协议无 ...
- Django - Cookie和Session
Django - Cookie和Session cookie Django中操作Cookie Cookie版登陆校验 Session Django中Session相关方法 Session流程解析 Se ...
- 用 Python 描述 Cookie 和 Session
这篇文章我们来聊聊Cookie和Session,网上有很多关于这两个知识点的描述,可惜的是大部分都没有示例代码,因此本文的重点在于示例代码. 环境 Python3.6.0 Bottle0.12.15 ...
- Day 63 django 中间件、cookie、session
Day 63 django 中间件.cookie.session 文章目录 Day 63 django 中间件.cookie.session 1.cookie与session 简介 2.django操 ...
- 15. cookie、session、token
cookie.session.token 一.cookie 1.cookie的由来 2.cookie是什么? 3.cookie的原理 4.Cookie规范 4.django中操作cookie(增删改查 ...
- Python视频学习(十二、Django)
目录 0 背景 0.1 MVC框架 0.2 Django 1. 虚拟环境 2. ★第一个Django案例 2.1 创建项目 a. 创建项目 项目目录说明 b. 创建app 目录说明 c. 安装应用 d ...
- 【Django】Django中cookies、session和token实现demo
一.cookies和session HTTP是一种无状态的协议,客户端向服务端发起请求,在通过用户名和密码进行用户认证后,HTTP协议不会记录认证状态,所以用户在下次请求时还是需要再次认证.为了能够保 ...
- Cookie、Session和自定义分页
cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...
- 设置cookie存活时间_Django之cookie、session、token
客户端会话技术:cookie 服务端会话技术:session 自定义会话技术:token 一.cookie cookie本身由服务器端生成,通过Response将cookie写到浏览器上,下一次再次访 ...
- 深入理解cookie和session
cookie和session在java web开发中扮演了十分重要的作用,本篇文章对其中的重要知识点做一些探究和总结.(转发自https://www.cnblogs.com/roy-blog/p/82 ...
最新文章
- 【计算理论】计算理论总结 ( P 、NP 、NPC 总结 ) ★★
- Docker(五)如何构建Dockerfile
- 使用Notepad++开发C#,一个复杂点的csscript脚本
- Debian Linux下的Python学习——入门
- awk正则匹配nginx日志【原创】
- 【转载】程序员历史之一
- 面向数据科学的概率论 二、计算几率
- java 异步查询转同步多种实现方式:循环等待,CountDownLatch,Spring EventListener,超时处理和空循环性能优化...
- 使用canvas 画钟表
- webpack output.publicPath
- python写微信小程序商城,oejia_weshop
- 小奇的矩阵(动态规划
- Ramnit 蠕虫分析
- 【Linux学习】信号——信号保存 | 信号处理 | 不可重入函数,volatile,SIGCHLD信号
- Python利用Face++实现身份证件图片识别
- e3服务器性能怎么样,Inte至强 E3-1230 V3性能怎么样?跟 i7 相比呢?
- php 面试,PHP 经典面试题集
- 专科入行软件测试可行么
- 小程序的gridview布局
- 一个简单的三子棋游戏