django中cookie与session的使用

news/2024/12/24 9:27:44/

一、cookie

  1. cookie由服务器生成 ,存储在浏览器中的键值对数据,具有不安全性,对应敏感数据应该加密储存在服务端
  2. 每个域名的cookie相互独立
  3. 浏览器访问域名为A的url地址,会把A域名下的cookie一起传递到服务器
  4. cookie可以设置过期时间

djangocookie_6">django中设置cookie:

from django.http import HttpResponse# 接收路由2个参数,一个key, 一个value
def SetCookie(request, key, value):response = HttpResponse()response.set_cookie(key, value, max_age=60 * 60)return response

注:

max_age:

默认为None(关闭浏览器时删除Cookie)单位秒:60*60 表示3600秒,即1小时

djangocookie_26">django中获取cookie:

from django.http import HttpResponse
# 接收路由的key进行查询返回数据
def GetCookie(request,key):value = request.COOKIES.get(key)return HttpResponse(value)

路由配置:

from .CookieApiView import SetCookie, GetCookieurlpatterns = [re_path('set_cookie/(.+)/(.+)', SetCookie, name="set_cookie"),re_path('get_cookie/(.+)', GetCookie, name="get_cookie"),
]

cookie测试:

设置: http://127.0.0.1:8000/set_cookie/username/name1

获取: http://127.0.0.1:8000/get_cookie/username

二、Session

  1. Ssession基于cookie
  2. Session把敏感的数据以加密的方式保存在服务器的数据库中
  3. Session也可设置过期时间

session设置:

request.session[key]=value
# 设置过期时间,默认过期时间是2周
request.seesion.set_expiry(60*60)

session获取:

value=request.seesion.get(key)

注: 如果没有这个key,返回空

清空session表中所有数据:

request.seesion.flush()

用途:

这个函数用于刷新会话,即清空会话中的数据,但保留会话ID。这通常用于确保会话数据不会累积,也不会被滥用。

注意事项:

这个方法会删除当前会话中的所有数据,但不会删除会话的cookie。这意味着会话ID会保留,但session会话数据会被清空。

清理sessionId对应数据:

request.seesion.clear()
用途:
  • 这个函数用于完全清除当前会话中的所有数据。通常在用户注销或需要重置会话时使用。
注意事项:
  • 使用 clear()方法会删除会话中的所有数据,包括用户ID、登录状态等。因此,在调用这个方法之前,请确保这是你想要的操作。

djangosession_105">django中session配置

django中session数据存放在初始化下面这个应用时生成的数据表django_session中:

INSTALLED_APPS = ['django.contrib.sessions',]

三个字段示例: seesion_key、seesion_data、expirer_date

全局模块配置

INSTALLED_APPS = ['django.contrib.sessions',
]

视图配置

from django.http import HttpResponsedef SetSession(request, key, value):request.session[key] = valuereturn HttpResponse("session设置成功")def GetSession(request,key):value = request.session.get(key)return HttpResponse(value)# 清空sessionID数据
def ClaerSession(request):request.session.clear()return HttpResponse("session清理成功")
# 清空session表中所有数据
def FlushSession(request):request.session.flush()return HttpResponse("session表中数据清理成功")

3.路由配置

from .SessionApiView import SetSession, GetSession, ClaerSession, FlushSessionurlpatterns = [re_path('set_session/(.+)/(.+)', SetSession, name="set_session"),re_path('get_session/(.+)', GetSession, name="get_session"),re_path('flush_session/', FlushSession, name="flush_session"),re_path('clear_session/', ClaerSession, name="clear_session"),
]

测试

设置: http://127.0.0.1:8000/set_session/username/name1

获取: http://127.0.0.1:8000/get_session/username

清理sessionId对应数据: http://127.0.0.1:8000/clear_session/

清空session表中所有数据: http://127.0.0.1:8000/flush_session/


http://www.ppmy.cn/news/1557706.html

相关文章

多模态去噪信息收集

系列博客目录 文章目录 系列博客目录1、Here are some key papers related to multimodal denoising that may be relevant to your research:2、being 搜 Multimodal denoisingMulti-modal deep convolutional dictionary learning for image denoising 1、Here are some key …

如何给负载均衡平台做好安全防御

在现代网络架构中,负载均衡(Load Balancing)扮演着至关重要的角色。它不仅负责将流量分配到多个服务器以确保高效的服务交付,还作为第一道防线来抵御外部攻击。为了保护您的应用程序和服务免受潜在威胁,必须对负载均衡…

GTID下复制问题和解决

环境介绍 数据库1主2从,mysql版本是v5.19 表结构 一、主库新增记录,从库提示主键冲突 模拟故障 1, master上关闭 sql_log_bin,删除id 103 后打开 2, 确认此时从库有id103,主库没有 3, master insert id103 主从异常…

蓝桥杯——竞赛省赛国赛题分享

目录 一.[蓝桥杯 2013 省 AB] 错误票据 代码如下: 二.[蓝桥杯 2024 省 Java B] 报数游戏 代码如下: 讲解: 三.[蓝桥杯 2014 国 C] 拼接平方数 代码如下: 四.三步问题(递归,上台阶) 代码…

推荐一款免费且好用的 国产 NAS 系统 ——FnOS

一、系统基础信息 开发基础:基于最新的Linux内核(Debian发行版)深度开发,兼容主流x86硬件(ARM还没适配),自由组装NAS,灵活扩展外部存储。 使用情况:官方支持功能较多&am…

【华为OD-E卷-寻找密码 100分(python、java、c++、js、c)】

【华为OD-E卷-寻找密码 100分(python、java、c、js、c)】 题目 小王在进行游戏大闯关,有一个关卡需要输入一个密码才能通过,密码获得的条件如下: 在一个密码本中,每一页都有一个由 26 个小写字母组成的若…

ue5 pcg(程序内容生成)真的简单方便,就5个节点

总结: 前情提示 鼠标单击右键平移节点 1.编辑-》插件-》procedural->勾选两个插件 2.右键-》pcg图表-》拖拽进入场景 3.先看点point 右键-》调试(快捷键d)->右侧设置粒子数 3.1调整粒子数 可以在右侧输入框,使用加减乘除 4.1 表面采样器 …

【国产NI替代】32振动/电压(配置复合型)高精度终端采集板卡,应用于复杂的大型测量场景

32振动/电压(配置复合型)高精度终端采集板卡 采用 EP4CE115F29I7 型号的 FPGA ,是一款 高精度,多通道动态信号采集器,主要应用 在复杂的大型测量并对成本要求不敏感的场 合,默认具备 8 个测量板卡&#…