Django-cookie和session
文章目录
- 前言
- Cookie
- Session
- 一、Django 中 Cookie
- 二、Django 中 Session
- 三.区别
前言
Cookie
Cookie 是由服务器发送到用户浏览器的小文件,用于存储用户的相关信息。每次用户访问网站时,浏览器会将这些 cookie 发送回服务器
特点:
1. 数据存储在客户端,大小通常限制在 4KB
2. 过期时间可以设置,默认是会话级别
3. 用户可以手动删除 cookie
Session
Session 是一种在服务器端存储用户数据的机制,用户的数据以会话的方式保存。Django 会为每个用户生成一个唯一的 session ID,并将其存储在客户端的 cookie 中
特点:
1. 数据存储在服务器端,可以存储更大和复杂的数据结构
2. 更安全,因为用户不能直接访问 session 数据
3. 自动管理会话的过期时间
一、Django 中 Cookie
假设你想在用户的浏览器中存储一个用户的用户名,以便在下次访问时显示欢迎信息
方法:
def set_cookie(request):response = render(request, 'set_cookie.html')response.set_cookie('username', 'john', max_age=3600)# 设置一个名为username,值为john的cookie,有效期为3600秒return responsedef get_cookie(request):username = request.COOKIES.get('username', 'guest')return HttpResponse(f"欢迎回来,{username}!")
路由:
path('set_cookie', views.set_cookie, name='set_cookie'),
path('get_cookie', views.get_cookie, name='get_cookie'),
html:
<Doctype html>
<html>
<head><title>Set Cookie</title>
</head>
<body><h1>Set Cookie</h1><p>Cookie set successfully!</p
</body>
</html>
访问链接http://127.0.0.1:8000/article/set_cookie设置cookie

在访问http://127.0.0.1:8000/article/get_cookie获取cookie

二、Django 中 Session
假设你想在用户登录后存储他们的登录状态
方法:
def login_view(request):if request.method == 'POST':request.session['is_login'] = Truereturn redirect('/article/index_view')else:return render(request, 'login_view.html')def index_view(request):if 'is_login' in request.session:return render(request, 'index_view.html')else:return redirect('/article/login_view')def logout_view(request):request.session.clear()return redirect('/article/login_view')
路由:
path('login_view', views.login_view, name='login_view'),
path('logout_view', views.logout_view, name='logout_view'),
path('index_view', views.index_view, name='index_view'),
login_view.html:
<DOCTYPE html>
<html>
<head><title>Login</title>
</head>
<body><h1>Login</h1><form method="post" action="">{% csrf_token %}<label for="username">Username:</label><input type="text" id="username" name="username" required><br><br><label for="password">Password:</label><input type="password" id="password" name="password" required><br><br><input type="submit" value="Login"></form>
</body>
</html>
index_view.html:
<DOCTYPE html>
<html>
<head><title>Welcome to our website</title>
</head>
<body><h1>Welcome to our website</h1><p>Thank you for visiting our website. We hope you find what you are looking for.</p><span><a href="/article/logout_view">logout</a></span>
</body>
</html>
访问链接http://127.0.0.1:8000/article/login_view

因为这里只是介绍session,所以没有做验证用户处理

点击logout之后

三.区别
Cookie: 适合存储小量且不敏感的信息,直接由用户浏览器管理
Session: 适合存储较大的数据和敏感信息,数据保存在服务器端,更安全
注意: django.session 表中保存的是浏览器的信息,而不是每一个用户的信息
因此,同一浏览器多个用户请求只保存一条记录(后面覆盖前面),多个浏览器请求才保存多条记录
相关文章:
Django-cookie和session
文章目录 前言CookieSession 一、Django 中 Cookie二、Django 中 Session三.区别 前言 Cookie Cookie 是由服务器发送到用户浏览器的小文件,用于存储用户的相关信息。每次用户访问网站时,浏览器会将这些 cookie 发送回服务器 特点: 1. 数据存储在客户…...
前端进阶,使用Node.js做中间层,实现接口转发和服务器渲染
在Web开发中,Node.js经常被用作中间层(也称为后端或服务器端),用于处理各种任务,包括接口转发(API Gateway)、服务器渲染(Server-Side Rendering, SSR)等。下面我将分别解…...
iPhone 16系列:熟悉的味道,全新的体验
来看看iPhone 16和Plus这两个新成员,实话说,它们和之前曝光的样子几乎完全一致。下面我们就一起来细数一下这次的几大变化吧。 外观设计:焕然一新 首先,最显眼的变化就是后置镜头模组的布局调整为了垂直排列。这一改变使得整个背…...
改进拖放PDF转换为图片在转换为TXT文件的程序
前段时间我写了Python识别拖放的PDF文件再转成文本文件-CSDN博客 最近有2点更新,一是有一些pdf文件转换出来的图片是横的,这样也可以识别文字,但是可能会影响效果,另一个是发现有一些文字识别不出来,看了关于提高Padd…...
在 Flutter 开发中如何选择状态管理:Provider 和 GetX 比较
在 Flutter 开发中,状态管理是一个至关重要的部分。正确的状态管理方案能够提高应用的可维护性和可扩展性。在众多状态管理方案中,Provider 和 GetX 是两种非常流行的选择。本文将对这两者进行比较,并提供代码示例,以帮助开发者选…...
python中ocr图片文字识别样例(二)
一、说明 本次解决图片相关出现中文乱码问题,属于上篇文章的优化,前提条件依赖上篇文章的包,当然ocr的具体应用场景很多,根据自身需求进行调整 二、具体实现 2.1 代码实现: # -*- coding: utf-8 -*- import easyoc…...
2024 新手指南:轻松掌握 Win10 的录屏操作
之前为了节约成本我们公司都采用录制软件操作都方式来为异地的同事进行远程操作培训的。所以我们尝试了不少的录屏工具,这里我就分享下win10怎么录屏的操作过程。 1.福昕录屏大师 链接:www.foxitsoftware.cn/REC/ 这款录屏工具是初学者的理想之选&…...
无人机黑飞打击技术详解
随着无人机技术的普及,无人机“黑飞”(未经授权或违反规定的飞行)现象日益严重,对公共安全、隐私保护及重要设施安全构成了严重威胁。为有效应对这一挑战,各国政府和安全机构纷纷研发并部署了一系列无人机黑飞打击技术…...
GoFly快速开发框架/Go语言封装的图像相似性比较插件使用说明
说明 图像相似性搜索应用广泛、除了使用搜索引擎搜索类似图片外,像淘宝可以让顾客直接拍照搜索类似的商品信息、应用在商品购物上,也可以应用物体识别比如拍图识花等领域。还有在调研图片鉴权的方案,通过一张图片和图片库中的图片进行比对&a…...
【牛客】小白赛101-B--tb的字符串问题
题目传送门 思路:括号匹配板子 反思:我用了模拟打标记的方式但是还是wa了 ac代码 用了栈维护 当栈里面个数到达1个以上的时候就可以判断栈顶是否匹配然后重复出入栈操作 #include<bits/stdc.h> using namespace std; const int N1e63; string…...
企业专用智能云盘 | 帮助企业便捷管控企业文档 | 天锐绿盘云文档安全管理系统
由于当前多数企业内部的办公文件普遍散落于各员工电脑中,导致存在诸多潜在的文档使用风险。为优化团队协作效率,天 锐 绿盘是一款集文档统一管理、高效协同于一体的企业云盘,帮助企业解决文档管理中的诸多难题。 【地址:点击了解天…...
软件工程专业未来发展方向
1. 前端开发(Front-end Development) 简介: 前端开发者专注于网站和应用程序的用户界面和用户体验设计。他们使用HTML、CSS、JavaScript等基本技术,以及React、Angular、Vue.js等前端框架,来创建互动性强、响应迅速的…...
【204】C++的vector删除重复元素
有些场景下 vector 中会有重复元素,而业务要求 vector 中避免出现重复元素。 我的算法如下: 获取当前 vector 的元素数量,并保存到一个 int 类型变量中。开启一个外部循环,把 vector 从后向前循环,循环范围是最后一个…...
模型案例:| 行李检测模型!
导读 2023年以ChatGPT为代表的大语言模型横空出世,它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力,为人工智能技术的发展开辟了新的可能性。同时,人工智能技术正在进入各种应用领…...
【PostgreSQL】PostgreSQL SQL语句整理:掌握核心技能
在数据库管理的世界里,PostgreSQL以其强大的功能和灵活性而闻名。作为一名数据库开发者或者数据分析师,熟练掌握SQL语句是必不可少的。在本文中,我们将梳理一系列常用的PostgreSQL SQL语句,帮助你更高效地管理你的数据库。 基础操…...
电风扇制造5G智能工厂物联数字孪生平台,推进制造业数字化转型
电风扇正悄然成为制造业数字化转型浪潮中的一颗璀璨新星。通过构建5G智能工厂物联数字孪生平台,电风扇制造业正以前所未有的速度和精度,推进着整个行业的智能化、网络化与个性化发展。5G技术的飞速发展,为制造业带来了前所未有的通信速度和低…...
Zookeeper安装使用教程
# 安装 官网下载安装包 #配置文件 端口默认8080,可能需要更改一下 #启动 cd /Users/lisongsong/software/apache-zookeeper-3.7.2-bin/bin ./zkServer.sh start #查看运行状态 ./zkServer.sh status #停止 ./zkServer.sh stop #启动客户端 ./zkCli.sh ls /...
Linux C# DAY3
作业 1、 #!/bin/bash mkdir -p ~/dir/dir1 mkdir ~/dir/dir2 cp ./* ~/dir/dir1 cp ./*.sh ~/dir/dir2 cd ~/dir/ tar -cvJf dir2.tar.xz ./dir2 mv dir2.tar.xz ~/dir/dir1/ cd ~/dir/dir1/ tar -xvf dir2.tar.xz 2、 #!/bin/bash head -5 /etc/group | tail -1 sudo mkdi…...
Pycharm中虚拟环境依赖路径修改
引言 在pycharm中创建完虚拟环境后,它会自动将同文件夹底下的site_pakages等子文件夹作为该虚拟环境的依赖项。我们可以通过sys.path来查看当前虚拟环境的依赖路径,在这些依赖路径底下的包就可以被import到。但有些情况下,在我们创建了一个虚…...
可视化数据分析收集软件Splunk Enterprise for Mac
Splunk Enterprise for mac 是一款强大的机器数据平台软件,具有以下特点和优势: 软件下载地址 一、功能强大的数据处理能力 专为收集、整理、搜索、分析和监控各种类型或来源的机器数据而设计,能够实时处理大量的机器生成数据,…...
开源字体完全指南:免费商用与跨平台优化实践
开源字体完全指南:免费商用与跨平台优化实践 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 在当今数字化设计领域,选择合适的字体不仅关乎视觉呈现,…...
CCF推荐C类会议与期刊全景解析:计算机网络研究者的学术地图
1. CCF推荐C类会议与期刊:计算机网络研究者的学术指南针 刚进入计算机网络领域的研究生常常会面临一个困惑:面对海量的学术会议和期刊,到底该从哪里入手?中国计算机学会(CCF)推荐的C类会议和期刊就像一张精…...
商城首页小程序源码 购物商场小程序系统 开源商城系统 基于H5小程序Uniapp开发
【核心功能】 – 前端小程序:uniapp 1、顶部自定义透明导航 2、搜索框 3、动态轮播图 4、动态分类导航 5、动态通知提醒 6、宫格商品列表 7、列表上滑预加载 8、底部导航 – 系统架构:uniapp,代码规范 – 适合懂uniapp的朋友使用 …...
【无标题】修改+删除顶层class
# 最顶层的class信息如何删除-- 步骤1:删除该班级学生关联的成绩(先删最底层score表) DELETE FROM score WHERE studentNo IN (SELECT studentNo FROM student0 WHERE classNo210601);-- 步骤2:删除该班级的所有学生(再…...
K均值算法(C++版)
选用K均值算法对一串整形数据(100行,100列)进行聚类。输出两个结果文件:1)第一个输出结果文件为cluster_centers.txt,其中输出聚类得到的各区域(聚类)的中心,以及每个聚类…...
DeepAnalyze数据结构优化:提升大规模数据处理性能
DeepAnalyze数据结构优化:提升大规模数据处理性能 1. 引言 当你面对几十GB甚至TB级别的数据集时,是不是经常遇到处理速度慢、内存占用高的问题?DeepAnalyze作为一款强大的AI数据分析工具,在处理大规模数据时,数据结构…...
茉莉花插件:5分钟快速上手Zotero中文文献智能管理终极指南
茉莉花插件:5分钟快速上手Zotero中文文献智能管理终极指南 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件,用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 还在为处理…...
解锁3大高效创作模式:无需安装的在线演示神器全解析
解锁3大高效创作模式:无需安装的在线演示神器全解析 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing for …...
ChatGPT:解锁高级生产力工具的全方位指南
ChatGPT:功能强大的多面手ChatGPT 本质上是一个强大的搜索引擎,同时具备多种实用功能。它能回答问题、总结文本、撰写新内容、编写代码以及进行语言翻译等。不同版本的 ChatGPT,有的可浏览互联网,有的能提供截至最后训练模型日期的…...
Windows 11 + RTX4060Ti 实战:用PyTorch复现Kaggle冠军的U-Net,搞定Kvasir息肉分割
Windows 11 RTX4060Ti 实战:用PyTorch复现Kaggle冠军的U-Net,搞定Kvasir息肉分割 在消费级硬件上实现专业级医学图像分割并非遥不可及。当RTX 40系列显卡遇上PyTorch框架,配合Kaggle冠军团队的U-Net架构,我们完全可以在Windows 1…...
