Django之Session

Django之Session

目录

介绍

Session 是一种在 Web 应用中跟踪用户状态的机制。它可以用于存储和管理用户会话数据,以实现对用户身份验证、状态保持和用户个性化设置的支持

Session和Cookie都是于客户端和浏览器中传输数据(responserequest)

  • Cookie将数据存储在浏览器
  • Session将数据存储在数据库

Django操作Session

session数据保存在服务端,并会给客户端返回一个随机字符串

设置Session

这点和cookie也有所区别,cookie是服务端发送给客户端的数据,而session是从客户端获取标识并加密存储在服务端,因此用的是request

python 复制代码
request.session['sign'] = '123123'

session存储在表中的样子:

获取Session

这样获取的是解密后的session

python 复制代码
my_session = request.session.get('sign')

获取Session时内部发生的事情

  • 获取客户端请求中的随机字符串
  • 自动去存储session的表中对比
  • 如果对比成功则自动获取并解密

设置过期时间

python 复制代码
# 14天到期
request.session.set_expiry()

# 10秒后到期
request.session.set_expiry(10)

        
# 明天到期
request.session.set_expiry(datetime.datetime.now() + datetime.timedelta(days=1))


# 浏览器窗口关闭时到期
request.session.set_expiry(0)

清空session

python 复制代码
# 只删除服务端的
request.session.delete()

# 服务端与客户端全部删除
request.session.flush()
相关推荐
edjxj14 分钟前
解决QT可执行文件在不同缩放大小的电脑上显示差异
服务器·数据库·qt
tang&2 小时前
【Python自动化测试】Selenium常用函数详解
开发语言·python·selenium
Mr.Pascal8 小时前
Redis:主动更新,读时更新,定时任务。三种的优劣势对比
数据库·redis·缓存
路边草随风8 小时前
milvus向量数据库使用尝试
人工智能·python·milvus
newobut8 小时前
vscode远程调试python程序,基于debugpy库
vscode·python·调试·debugpy
思成不止于此8 小时前
【MySQL 零基础入门】DQL 核心语法(二):表条件查询与分组查询篇
android·数据库·笔记·学习·mysql
APIshop8 小时前
用 Python 把“API 接口”当数据源——从找口子到落库的全流程实战
开发语言·python
骥龙9 小时前
3.10、构建网络防线:防火墙、WAF 与蜜罐实战
服务器·网络·数据库·网络安全
一点晖光9 小时前
Docker 作图咒语生成器搭建指南
python·docker
smj2302_7968265210 小时前
解决leetcode第3768题.固定长度子数组中的最小逆序对数目
python·算法·leetcode