Django---Django中使用COOKIE和SESSION

一丶Cookie

cookie的由来

# HTTP协议是无状态的。

# 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。

# 对服务器来说,每次的请求都是全新的。

# 状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。会话中产生的数据又是我们需要保存的,也就是说要“保持状态”。

什么是cookie

# Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息

cookie原理

# cookie的工作原理是:由服务器产生内容,浏览器收到请求后保存在本地;当浏览器再次访问时,浏览器会自动带上Cookie,这样服务器就能通过Cookie的内容来判断这个是“谁”了

Django操作cookie

### 获取Cookie
request.COOKIES['key']
request.COOKIES.get('key') # 普通的cookie
request.get_signed_cookie('key', default=RAISE_ERROR, salt='', max_age=None) #加密的cookie ### 设置Cookie,都需要一个HttpResponse
rep = HttpResponse(...)
rep = render(request, ...)
rep = redirect(request, ...) rep.set_cookie(key,value,...) # 设置普通的cookie
rep.set_signed_cookie(key,value,salt='加密盐',...) # 设置加密后的cookie ### set_cookie() 参数说明:
key, 键
value='', 值
max_age=None, 超时时间
expires=None, 超时时间(IE requires expires, so set it if hasn't been already.)
path='/', Cookie生效的路径,/ 表示根路径,特殊的:根路径的cookie可以被任何url的页面访问
domain=None, Cookie生效的域名
secure=False, https传输
httponly=False 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖) ### 删除Cookie
def logout(request):
rep = redirect("/login/") #得到HttpResponse对象
rep.delete_cookie("user") # 删除用户浏览器上之前设置的user的cookie值
return rep

cookie模拟登录

###PS: cookie 关闭浏览器Cookie就失效. 存在本地浏览器上

### cookie 流程:
# 1. 服务端发送一个cookie信息
# 2. 本地浏览器保存,
# 3. 发起其他请求时,携带cookie
# 4. 服务器进行校验,从cookie获取一些信息 ,如:登录状态,记录用户浏览信息

​ 代码如下:

Django---Django中使用COOKIE和SESSION的更多相关文章

  1. django框架中的cookie与session

    cookie因为http是一个无状态协议,无法记录用户上一步的操作,所以需要状态保持.cookie和session的区别:1.cookie是保存在浏览器本地的,所以相对不安全.cookie是4k的大小 ...

  2. Django框架中的Cookie和Session

    学习内容: (1)cookie (2)session Web是基于请求/响应模式,HTTP协议是无状态的,但是基于 Internet的各种服务系统应运而生,建立商业站点或者功能比较完善的个人站点,常常 ...

  3. {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session

    Django基础八之cookie和session 本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 ...

  4. django系列7.2--django中的cookie和session基本操作,浏览器登陆验证的不同实现

    django中的cookie和session(02)–操作 一.Django中的cookie操作 ctrl + shift + del 是谷歌浏览器中清除页面缓存和cookie的快捷键 1.设置coo ...

  5. Python的Django框架中的Cookie相关处理

    Python的Django框架中的Cookie相关处理 浏览器的开发人员在非常早的时候就已经意识到. HTTP's 的无状态会对Web开发人员带来非常大的问题,于是(cookies)应运而生. coo ...

  6. day 62.3 Django基础八之cookie和session

    Django基础八之cookie和session   本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx ...

  7. day 73 Django基础八之cookie和session

      Django基础八之cookie和session   本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 x ...

  8. Django基础六之cookie和session

    Django基础六之cookie和session 目录 Django基础六之cookie和session 1. cookie和session介绍 1.1 cookie 简介 1.2 cookie的缺陷 ...

  9. 第74节:Java中的Cookie和Session

    第74节:第74节:Java中的Cookie和Session ServletContext: 什么是ServletContext,有什么用哦,怎么用呢? 启动服务器后,会给每个应用程序创建一个Serv ...

随机推荐

  1. django 基础进 COOKIE

    1 cookie session auth cookie概念:针对每一个服务器,保存在客户端浏览器的一个key-value结构数据,可以理解成一个字典结构 cookie语法:              ...

  2. 分享:手把手教你如何免费且光荣地使用正版IntelliJ IDEA

    https://mp.weixin.qq.com/s/6nRYmn6gAWFLg3mUIN_ojg TIPS 近日在个人技术讨论QQ群里,谈论到IDEA的那些事儿.有童鞋居然在某电商网站花钱买激活码. ...

  3. idea启动java项目,使用调试会占用更多内存

    idea启动java项目,使用调试会占用更多内存

  4. 利用$a_n$与$S_n$的关系求通项$a_n$

    前言 由\(a_n\)与\(S_n\)的关系求数列\(\{a_n\}\)的通项公式,在求通项公式题型中占有比较大的份额,是一个重要的求解思路和方法.是要求重点掌握的类型. 一.方法依据 二者关系:\( ...

  5. Centos7之搜索命令locate

    locate命令[1] 1.#locate命令 所搜索的后台数据库 2.updatedb 更新数据库 3.操作 [root@localhost ~]# ls 222  anaconda-ks.cfg ...

  6. [技术博客]海报图片生成——小程序canvas画布

    目录 背景介绍 canvas简介 代码实现 难点讲解 圆角矩形裁剪失败之PS的妙用 编码不要过硬 对过长的文字进行截取 真机首次生成时字体不对 drawImage只能使用本地图片 背景介绍 目标:利用 ...

  7. 怎么删除iOS模拟器上的应用程序?

    怎么删除iOS模拟器上的应用程序: 和手机上一样,鼠标长按,点击删除 xcode 卸载模拟器 Simulator:删除目录/Library/Developer/CoreSimulator/Profil ...

  8. 使用vue搭建应用五引入Mock.js

    为了模拟后台接口提供页面所需的数据,引入Mock.js Mock.js是一个模拟数据生成器,可帮助前端开发和原型与后端进度分开 特性: 前后端分离 增加单元测试的真实性 数据类型丰富 方便扩展 1.安 ...

  9. JMeter工具学习(一)工具使用详细介绍

    备注: JMeter版本4.0 JDK版本1.8 1,JMeter下载 2,下载后直接解压 3,打开解压文件,找到bin目录下的jmeter.bat,双击打开 4,打开jmeter 6,右键Test ...

  10. SpringApplication常见用法说明

    启动方式 方式1:在main方法中执行SpringApplication.run()这种方式来启动我们的工程 // 方式一 @SpringBootApplication public class Ap ...