Django 中的 session 的使用
一、Session的概念
cookie是在浏览器端保存键值对数据,而session是在服务器端保存键值对数据
session 的使用依赖 cookie:在使用Session后,会在Cookie中存储一个sessionid的数据,每次请求时浏览器都会将这个数据发给服务器,服务器在接收到sessionid后,会根据这个值找出这个请求者的Session。
二、Django中Session的存储
session键值对数据保
session的键值对数据默认保存在django项目的一张数据库表中(表名为:django_session),保存格式如下:
[
实际上是对数据有加密的,如下图:
三、Django中Session的配置
Django中默认支持Session,其内部提供了5种类型的Session供开发者使用:
- 数据库(默认)
- 缓存
- 文件
- 缓存+数据库
- 加密cookie
1)数据库Session
2)缓存Session
3)文件Session
4)缓存+数据库Session
5)加密cookie Session
四、Session的基本操作:
以键值对的格式写session
根据键读取值
清除所有session,在存储中删除值的部分
清除session数据,在存储中删除session的整条数据
删除session中的指定键及值,在存储中只删除某个键及对应的值
设置session数据有效时间; 如果不设置,默认过期时间为两周
如果过期时间的value是一个整数,则 session数据 将在value秒没有活动后过期。
如果过期时间的value为None,那么会话永不过期。
如果过期时间的value为0,那么用户会话的Cookie将在用户的浏览器关闭时过期。
四、以下是使用例子:
参考文档:
https://www.lagou.com/lgeduarticle/87770.html
https://www.cnblogs.com/lixiang1013/p/7821749.html
Django官方文档(中文版):https://docs.djangoproject.com/zh-hans/2.2/topics/http/sessions/
本问首发于BigYoung小站(http://www.bigyoung.cn)
版权声明: 本文为 InfoQ 作者【Young先生】的原创文章。
原文链接:【http://xie.infoq.cn/article/67007c47c35ec04b0d1b0d086】。未经作者许可,禁止转载。
评论