首页 > 编程语言 >python Django中的cookies和session会话保持技术

python Django中的cookies和session会话保持技术

时间:2023-04-03 12:03:52浏览次数:30  
标签:cookies 浏览器 python 存储 Django 会话 session 数据




cookies和session都是为了保持会话状态而诞生的两个存储技术




会话定义:



从打开浏览器访问一个网站,到关闭浏览器结束此次访问,称之为一次会话



HTTP协议是无状态的,导致会话状态难以保持




Cookies-定义



cookies是保存在客户端浏览器上的存储空间




python Django中的cookies和session会话保持技术_后端


Cookies特点


cookies在浏览器上是以键-值对的形式进行存储的,键和值都是一ASCLL字符串的形式存储(不能是中文字符串)


存储的数据带有生命周期


cookies中的数据是按域存储隔离的,不同的域之间无法访问


cookies的内部的数据会在每次访问此网址时都会携带到服务器端,如果cookies过大会降低响应速度。


Cookies的使用-存储



python Django中的cookies和session会话保持技术_后端_02


存储示例



python Django中的cookies和session会话保持技术_后端_03



python Django中的cookies和session会话保持技术_session/cookies_04



python Django中的cookies和session会话保持技术_django_05



python Django中的cookies和session会话保持技术_会话技术_06


案例:



python Django中的cookies和session会话保持技术_后端_07


会话保持 - 登录流程



python Django中的cookies和session会话保持技术_会话技术_08



session定义


session是在服务器上开辟一段空间用于保留浏览器和服务器交互时的重要数据


实现方式:


  •  使用session需要在浏览器客户端启动cookie,且在cookie中存储sessionnid
  • 每个客户端都可以在服务器端有一个独立的session
  • 注意:不同的请求者之间不会共享这个数据,与请求者一一对应


session初始配置


settings.py中配置session


1、向INSTALLED_APPS列表中添加:



python Django中的cookies和session会话保持技术_会话技术_09


2、向MIDDLEWARE列表中添加:



python Django中的cookies和session会话保持技术_会话技术_10


session的使用


session对像是一个类似与字典的SessionStore类型的对象,可以用类似于字典的方式进行操作。


session能够存储如字符串,整型,字典,列表等



python Django中的cookies和session会话保持技术_python_11


settings.py中相关配置项



python Django中的cookies和session会话保持技术_python_12


注意:Django中的session数据存储在数据中,所以使用session前需要确保已经执行过migrate


Django session的问题


1、django_session表是单表设计;且该表数据量持续增持【浏览器故意删掉sessionid & 过期数据为删除】


2、可以每晚执行python3 manage.py clearsessions 【该命令可删除已过期的session数据】



session与cookies对比


session把数据存在服务器上,cookies把数据存在浏览器上



python Django中的cookies和session会话保持技术_django_13




标签:cookies,浏览器,python,存储,Django,会话,session,数据
From: https://blog.51cto.com/HMJP/6165951

相关文章

  • python Django的admin后台建设
    什么是admin管理后台django提供了完善的后台管理数据库的接口,可供开发过程中调用和测试使用django会搜集所有已注册的模型类,为这些模型类提供数据管理界面,供开发者使用admin配置步骤1、创建后台管理账号-该账号为管理后台最高权限账号—注意:可以创建多个超级用户pytho......
  • Django自动插入登录用户用户名
    在Django管理界面中我想在发布时自动插入登录用户名和博客文章,目前我已经在每个用户的下拉菜单中显示每个用户选择但显然这不是很好,所以我想它自动输入这个。自动插入登录用户用户名在Django这里是我的代码:models.py从django.db进口车型从django.contrib.auth.models导入用户......
  • opencv-python 4.9.4. 轮廓:层次结构
    理论在最近几篇关于轮廓的文章中,我们使用了与OpenCV提供的轮廓相关的几个函数。但是当我们使用cv.findContours()函数在图像中找到轮廓时,我们已经传递了一个参数ContourRetrievalMode。我们通常传递cv.RETR_LIST或cv.RETR_TREE,它运行的效果很好。但它究竟意味着什么?此外,在输出......
  • Python3内置函数之D系列
    1、delattr()在Python中,delattr()函数用于删除对象的属性。它接受两个参数:第一个参数是要删除属性的对象,第二个参数是要删除的属性的名称。如果对象中不存在指定的属性,将会抛出AttributeError异常。 2、dict()在Python中,dict()函数用于创建一个字典对象。它可以接受不同类型......
  • Python导入的OpenCV模块的cv2不会提示,如何解决?
     1.找到opencv安装路径:python目录\Lib\site-packages\cv2  2.复制cv2.pyd一份到它的上级目录在这个目录下,将文件cv2.pyd,复制一份到它的上级目录:*\Lib\site-packages  3.重新启动pycharm4.测试验证,OK!              参考资料:h......
  • Python 调用Matplotlib 读取txt、csv文件画图
    目录PythonMatplotlib读取txt、csv文件绘图使用方法PythonMatplotlib读取txt、csv文件绘图show_data.pyimportsysimportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False#用来......
  • Python爬虫之数据写入
    Python爬虫实现爬取网站是如何进行数据写入保存的?今天我将利用我所学的知识把写入数据的一些代码教程供大家参考。Python爬虫之数据写入#写入到Excelimportxlsxwriter#创建文件,并添加一个工作表workbook=xlsxwriter.Workbook('demo.xlsx')worksheet=workbook.add_worksheet()......
  • Python爬虫之数据写入
    Python爬虫实现爬取网站是如何进行数据写入保存的?今天我将利用我所学的知识把写入数据的一些代码教程供大家参考。Python爬虫之数据写入#写入到Excelimportxlsxwriter#创建文件,并添加一个工作表workbook=xlsxwriter.Workbook('demo.xlsx')worksheet=workbook.add_worksh......
  • python+playwright 学习-44 过登录页面的滑块拼图验证码
    前言有些登录页面经常会遇到滑块验证码,滑块的操作思路基本都差不多,先确定缺口的位置,再滑动过去。一般在滑动过去的时候,会有人机识别机制,有时候你准确的滑动位置了,但不一定会解锁成功。滑块示例以下滑块为例需先计算出滑块的缺口位置,也就是我们需要滑动的距离计算缺口位置......
  • Notepad++运行Python
    按下F5或运行->运行,输入命令cmd/kpython"$(FULL_CURRENT_PATH)"&PAUSE&EXITpythonw-midlelib-r$(FULL_CURRENT_PATH)保存,设置快捷键。之后每一次需要运行python脚本的时候,只需要按下所设置的快捷键即可。解释:—————————————————————......