django中cookie与session的使用

news2024/12/23 2:27:29

一、cookie

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

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小时

django中获取cookie:

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

路由配置:

from .CookieApiView import SetCookie, GetCookie

urlpatterns = [
      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、登录状态等。因此,在调用这个方法之前,请确保这是你想要的操作。

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 HttpResponse

def SetSession(request, key, value):
    request.session[key] = value
    return 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, FlushSession

urlpatterns = [
    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.coloradmin.cn/o/2263999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

厦门凯酷全科技有限公司短视频带货可靠吗?

在当今这个数字化时代,抖音作为短视频和直播带货的领军平台,已经吸引了无数商家的目光。而在这一片繁荣的电商蓝海中,厦门凯酷全科技有限公司(以下简称“凯酷全”)凭借其专业的团队、丰富的经验和创新的服务模式&#…

从源码分析swift GCD_DispatchGroup

前言: 最近在写需求的时候用到了DispatchGroup,一直没有深入去学习,既然遇到了那么就总结下吧。。。。 基本介绍: 任务组(DispatchGroup) DispatchGroup 可以将多个任务组合在一起并且监听它们的完成状态。…

在C#中使用资源保存图像和文本和其他数据并在运行时加载

资源是您可以构建到应用程序中的图像、字符串、文本文件和其他数据。您的程序可以在运行时加载资源以显示新图片、文本或其他内容。 要将资源添加到项目,请打开“项目”菜单并选择最底部的“属性”命令。在“属性”页面上,单击“资源”选项卡。现在&…

基于MATLAB的图像增强

目录 一、背景及意义介绍背景图像采集过程中的局限性 意义 二、概述三、代码结构及说明(一)整体结构(二)亮度增强部分(三)对比度增强部分(四)锐度增强部分 四、复现步骤(…

电脑丢失dll文件一键修复的多种方法分析,电脑故障修复攻略

电脑在使用过程中,有时会遇到DLL文件丢失的情况,这可能导致软件无法正常运行或系统出现故障。当面对这种状况时,不必过于慌张,因为有多种有效的修复方法可供选择。下面我们一起来看看电脑丢失dll文件的多种解决方法。 一.了解什么…

android EditText密码自动填充适配

android上的密码(其实不仅仅是密码,可以是用户名也可以是邮箱)自动填充,是需要考虑适配的。 官方文档:https://developer.android.com/identity/autofill/autofill-optimize?hlzh-cn 什么是自动填充 手机厂商一般会…

GO--堆(have TODO)

堆 堆(Heap)是一种特殊的数据结构。它是一棵完全二叉树(完全二叉树是指除了最后一层外,每一层上的节点数都是满的,并且最后一层的节点都集中在左边),结放在数组(切片)中…

Yolov11学习笔记

YOLOv11学习笔记 1.conda环境变量配置 1.1pycharm中新建conda虚拟环境 在win11系统中,创建的conda虚拟环境不会在conda的安装目录下, 而是会在C:\Users\Admin.conda\envs 比如我的anaconda安装目录在F:\anaconda3 但是生成的虚拟环境在C:\Users\Adm…

算法 计算大的长方形容器中,存放一排小长形容器,计算出小长形容器中最后一个元素的x坐标的位置的实现方法

1、先上个图: 2、说明 1)中间的蓝色长方形是里面的橙色长方形的容器,比如第一个图中width2width3,因为只有一个,第二个图中有二个小的长方形,也就是说width22width3,第三个图中有3个小长方形&a…

不同版本的 Redis 的键值对内存占用情况示例

不同版本的 Redis 的键值对内存占用情况示例 文章目录 不同版本的 Redis 的键值对内存占用情况示例Redis 6.0redisObjectdictEntrysds🍀 数据结构🍀 sdslen() 函数🍀 sdsReqType() 函数🍀 sdsHdrSize() 函数 内存分配 - malloc() …

捕虫游戏-项目制作

前言 同学们前面已经学习了html css javascript基础部分了,为了巩固和熟练前面所学的知识,从今天起,我们要做一个捕虫游戏的项目。通过项目实战夯实基础,将所学的知识真正用到实战中,强化对网页设计的能力&#xff…

用docker快速安装电子白板Excalidraw绘制流程图

注:本文操作以debian12.8 最小化安装环境为host系统。 一、彻底卸载原有的残留 apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras 二、设置docker的安装源 # Add Dockers official G…

【从零开始入门unity游戏开发之——C#篇23】C#面向对象继承——`as`类型转化和`is`类型检查、向上转型和向下转型、里氏替换原则(LSP)

文章目录 一、as类型转化和is类型检查1、as 关键字使用场景:语法:示例:特点: 2、is 关键字使用场景:语法:示例:特点: 3、总结 二、向上转型和向下转型1、向上转型示例: 2…

Android GO 版本锁屏声音无效问题

问题描述 Android go版本 在设置中打开锁屏音开关,息屏灭屏还是无声音 排查 vendor\mediatek\proprietary\packages\apps\SystemUI\src\com\android\systemui\keyguard\KeyguardViewMediator.java private void setupLocked() {...String soundPath Settings.G…

跟着问题学18——transformer模型详解及代码实战(3)Encode编码器

跟着问题学18——transformer模型详解及代码实战(1) 跟着问题学18——transformer详解(2)多头自注意力机制-CSDN博客 2.3 残差连接 通过自注意力层我们挖掘提取了原始数据的特征,但编码层中会有多个编码器,这会导致网络层数的加…

React系列(八)——React进阶知识点拓展

前言 在之前的学习中,我们已经知道了React组件的定义和使用,路由配置,组件通信等其他方法的React知识点,那么本篇文章将针对React的一些进阶知识点以及React16.8之后的一些新特性进行讲解。希望对各位有所帮助。 一、setState &am…

【原生js案例】移动端如何实现页面的入场和出场动画

好的css动画,能给用户体验带来很大的提升,同时也能增加app的趣味性,给人眼前一亮的感觉。那如何实现这种全屏的弹窗入场和退场的动画 实现效果 代码实现 UI样式美化 #musicDetails{width: 100%;height: 100%;top:0;left:0;position: absol…

Pyqt6在lineEdit中输入文件名称并创建或删除JSON文件

1、创建JSON文件 代码 import osdef addModulekeyWordFile(self):if "" ! self.lineEdit_module.text():moduleFile self.lineEdit_module.text() .jsonelse:self.toolLogPrinting(请输入模块名称)returnfilePath modulekeyWordFileDir moduleFileif os.path.e…

鸿蒙UI开发——组件滤镜效果

1、概 述 ArkUI为组件提供了滤镜效果设置,背景滤镜、前景滤镜、合成滤镜。我们可以通过以下方式为组件设置对应的滤镜效果。 Text(前景滤镜)// ..其他属性.foregroundFilter(filterTest1) // 通过 foregroundFilter 设置模糊效果Text(背景滤镜)// ...其他属性.bac…

均方误差损失函数(MSE)和交叉熵损失函数详解

为什么需要损失函数 前面的文章我们已经从模型角度介绍了损失函数,对于神经网络的训练,首先根据特征输入和初始的参数,前向传播计算出预测结果,然后与真实结果进行比较,得到它们之间的差值。 损失函数又可称为代价函…