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()
相关推荐
workflower2 分钟前
测试套件缩减方法
数据库·单元测试·需求分析·个人开发·极限编程
程序员爱钓鱼7 分钟前
Python编程实战 面向对象与进阶语法 迭代器与生成器
后端·python·ipython
Cikiss12 分钟前
图解 MySQL JOIN
数据库·后端·mysql
程序员爱钓鱼16 分钟前
Python编程实战 面向对象与进阶语法 JSON数据读写
后端·python·ipython
员大头硬花生25 分钟前
六、InnoDB引擎-架构-结构
数据库·mysql·oracle
TH888631 分钟前
一体化负氧离子监测站:实时、精准监测空气中负氧离子浓度及其他环境参数
python
苏打水com1 小时前
0基础学前端:100天拿offer实战课(第3天)—— CSS基础美化:给网页“精装修”的5大核心技巧
人工智能·python·tensorflow
程序新视界1 小时前
在MySQL中,是否可以使用UUID作为主键?
数据库·后端·mysql
顾安r1 小时前
11.5 脚本 本地网站收藏(解封归来)
linux·服务器·c语言·python·bash
晓py1 小时前
InnoDB 事务日志机制全流程详解|从 SQL 到崩溃恢复的完整旅程
数据库·sql·oracle