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()
相关推荐
孟健8 小时前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞10 小时前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
倔强的石头_10 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
曲幽12 小时前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers
敏编程17 小时前
一天一个Python库:jsonschema - JSON 数据验证利器
python
前端付豪17 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
databook17 小时前
ManimCE v0.20.1 发布:LaTeX 渲染修复与动画稳定性提升
python·动效
花酒锄作田1 天前
使用 pkgutil 实现动态插件系统
python
前端付豪1 天前
LangChain链 写一篇完美推文?用SequencialChain链接不同的组件
人工智能·python·langchain
曲幽1 天前
FastAPI实战:打造本地文生图接口,ollama+diffusers让AI绘画更听话
python·fastapi·web·cors·diffusers·lcm·ollama·dreamshaper8·txt2img