首页 > 其他分享 >10.django-cookie&session

10.django-cookie&session

时间:2022-11-17 12:44:06浏览次数:36  
标签:10 Session session COOKIE Cookie cookie SESSION

我们知道HTTP协议是无状态协议,也就是说每个请求都是独立的!无法记录前一次请求的状态。但HTTP协议中可以使用Cookie来完成会话跟踪!在Web开发中,使用session来完成会话跟踪,session底层依赖Cookie技术。

1.cookie

Cookie翻译成中文是小甜点,小饼干的意思。在HTTP中它表示服务器送给客户端浏览器的小甜点。其实Cookie是key-value结构,类似于一个python中的字典。

随着服务器端的响应发送给客户端浏览器。然后客户端浏览器会把Cookie保存起来,当下一次再访问服务器时把Cookie再发送给服务

 

 cookie语法

# (1) 设置cookie:
res = HttpResponse(...) 或 rep = render(request, ...) 或 rep = redirect() 
res.set_cookie(key,value)
res.set_signed_cookie(key,value,salt='加密盐') 
# (2) 获取cookie:
request.COOKIES 
request.get_signed_cookie()
# (3) 删除cookie
response.delete_cookie("cookie_key")

 

2.session

Django 提供对匿名会话(session)的完全支持。这个会话框架让你可以存储和取回每个站点访客任意数据。它在服务器端存储数据, 并以cookies的形式进行发送和接受数据。

 

 

 2.1 语法

# 1、设置Sessions值
       request.session['session_name'] ="admin"
# 2、获取Sessions值
       session_name = request.session["session_name"]
# 3、删除Sessions值
       del request.session["session_name"]

 

2.2 session配置

在配置文件settings.py中设置

  • 文件版
    # session
    SESSION_ENGINE = 'django.contrib.sessions.backends.file'
    SESSION_FILE_PATH = 'xxxx' # 文件路径
    
    SESSION_COOKIE_NAME = "sessionid"  # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串
    SESSION_COOKIE_PATH = "/"  # Session的cookie保存的路径
    SESSION_COOKIE_DOMAIN = None  # Session的cookie保存的域名
    SESSION_COOKIE_SECURE = False  # 是否Https传输cookie
    SESSION_COOKIE_HTTPONLY = True  # 是否Session的cookie只支持http传输
    SESSION_COOKIE_AGE = 1209600  # Session的cookie失效日期(2周)
    SESSION_EXPIRE_AT_BROWSER_CLOSE = False  # 是否关闭浏览器使得Session过期
    SESSION_SAVE_EVERY_REQUEST = True  # 是否每次请求都保存Session,默认修改之后才保存
  • 数据库版【默认】
    # session
    SESSION_ENGINE = 'django.contrib.sessions.backends.db'
  • 缓存版
    # session
    SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
    SESSION_CACHE_ALIAS = 'default' # 缓存

     

标签:10,Session,session,COOKIE,Cookie,cookie,SESSION
From: https://www.cnblogs.com/victor1234/p/16899090.html

相关文章

  • 扫java盲区知识点之JDBC(2021-10-22)
    今天是2021-10-22,也是我左手中指受伤之后回深圳的第一天。今天准备学习JDBC的知识。1.hibernate和mybatis实际上是封装了jdbc2.ssm的全称:spring+springmvc+mybatis3.框......
  • Command10,Access数据库
    我的按钮名为Command10,Access文档新建在当前目录下,代码如下PrivateSubCommand10_Click() DimcatAsADOX.Catalog Setcat=NewADOX.Cata......
  • ArcGIS10.8版本里面,提示数据源缺少空间参考信息,不能投影,如何解决?
    明明在Arcgis10.2版本中打开shapefiles投影是正常的。  但到了ArcGIS10.8版本里面却提示数据源缺少空间参考信息,不能投影!!!经研究发现ArcGIS10.8版本竟然不能读取带B......
  • Session的简单应用进行传值
    session可以看做是一个hashmap:存取值的原理同java中的HashMap的键值对相同session.setAttribute("key",value);是session存值的方法,session.getAttribute(key);是sessio......
  • Could not obtain transaction-synchronized Session for current thread
    一场景我的项目中,发生这个错误是由于我使用springmvc框架,但是在里面新建了一个springboot的camunda(流程)模块。而springmvc使用hibernate,camunda使用jpa的entityManager......
  • MBR10200AC-ASEMI半塑封肖特基二极管MBR10200AC
    编辑:llMBR10200AC-ASEMI半塑封肖特基二极管MBR10200AC型号:MBR10200AC品牌:ASEMI封装:TO-220AC正向电流:10A反向电压:200V引线数量:2芯片个数:1芯片尺寸:86MIL漏电流:10ua......
  • SB20100LFCT-ASEMI塑封肖特基二极管SB20100LFCT
    编辑:llSB20100LFCT-ASEMI塑封肖特基二极管SB20100LFCT型号:SB20100LFCT品牌:ASEMI封装:ITO-220AB特性:肖特基二极管正向电流:20A反向耐压:100V恢复时间:5ns引脚数量:3芯片个数:2芯片......
  • SB20100LFCT-ASEMI塑封肖特基二极管SB20100LFCT
    编辑:llSB20100LFCT-ASEMI塑封肖特基二极管SB20100LFCT型号:SB20100LFCT品牌:ASEMI封装:ITO-220AB特性:肖特基二极管正向电流:20A反向耐压:100V恢复时间:5ns引脚数量:3芯......
  • Java新特性(1):Java 9和Java10
    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 自从Java在2009年被Oracle收购之后,就不再开源,除了Oracle官方发布的版本之外,还有OpenJDK版本,这两者的区别可以自行找某度......
  • STM32F103系列默认没有内置USB DFU功能
    STM32F103系列默认没有内置USBDFU功能,不能通过进入DFU模式,通过USB对程序进行更新,虽然在调试阶段用比如jlink、STlink等仿真器进行程序的烧录更新,但是总是不太方便,毕竟不......