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()
相关推荐
2301_7644413313 小时前
Aella Science Dataset Explorer 部署教程笔记
笔记·python·全文检索
爱笑的眼睛1113 小时前
GraphQL:从数据查询到应用架构的范式演进
java·人工智能·python·ai
BoBoZz1914 小时前
ExtractSelection 选择和提取数据集中的特定点,以及如何反转该选择
python·vtk·图形渲染·图形处理
liwulin050614 小时前
【PYTHON-YOLOV8N】如何自定义数据集
开发语言·python·yolo
Elastic 中国社区官方博客14 小时前
Elasticsearch:在分析过程中对数字进行标准化
大数据·数据库·elasticsearch·搜索引擎·全文检索
聪明努力的积极向上14 小时前
【MYSQL】字符串拼接和参数化sql语句区别
数据库·sql·mysql
代码or搬砖14 小时前
RBAC(权限认证)小例子
java·数据库·spring boot
神仙别闹14 小时前
基于QT(C++)实现学本科教务系统(URP系统)
数据库·c++·qt
2301_7683502314 小时前
MySQL为什么选择InnoDB作为存储引擎
java·数据库·mysql
上海蓝色星球14 小时前
迈向智慧电网新纪元:上海蓝色星球数字孪生变电主子站系统
运维·数据库