Django之Session

Django之Session

目录

介绍

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

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

  • 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()
相关推荐
LOVE️YOU11 小时前
Python 中 Tuple 为什么有时可 Hash,有时不可 Hash?
开发语言·python·哈希算法
小oo呆11 小时前
【学习心得】迭代器和可迭代对象
开发语言·python
gb421528711 小时前
向量数据库多模态特性
数据库
AC赳赳老秦12 小时前
采集行为合规自检:OpenClaw 自动校验 robots 协议与采集频率,规避违规采集风险
java·开发语言·c++·python·php·deepseek·openclaw
迅猛龙办公室12 小时前
Python输出当前计算机的系统日期和时间
开发语言·前端·python
泡海椒12 小时前
数据占比展示:jquick-pdf饼图动态数据渲染PDF教程
数据库·oracle·pdf
大连好光景12 小时前
向量数据库的工作流程详解
数据库·milvus
catchadmin12 小时前
用 Jev 与 Laravel AI SDK 检测垃圾邮件和自动回复
数据库·人工智能·laravel
吠品13 小时前
CSS图片模糊过渡:一个transition加filter就够
java·数据库·notepad++
XiaoMaqqqq13 小时前
知名的IP驱动产业新场景新工具
网络·python·网络协议·tcp/ip