36.Django中设置获取和删除cookie
Posted 孤寒者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了36.Django中设置获取和删除cookie相关的知识,希望对你有一定的参考价值。
引言——我们都知道HTTP(超文本传输协议)是一个无状态的协议。
那么客户端和服务器都是怎么记录登录的状态的呢——也就是怎么维持登录的呢?
(比如:你在浏览器中登录过了爱奇艺账号,哪怕你网页关闭了,只要时间不长,你再次登录的话会发现不用输入账号就已经是登录状态了!)
什么是cookie:
简单介绍一下什么是cookie,客户端浏览器上的一个文件,以键值对进行保存,类似字典{‘k’:‘v’},与服务器端没有关系,当游览器访问服务器时候,服务器会生成一个随机字符串保存在cookie中返回给客户端,这样当客户端游览器下次访问服务器端时候,会带着这个保存了的cookie访问服务器,服务器端收到请求后,经过检查此cookie已存在此随机字符串,表示此客户端为已通过认证的状态,可以直接登录。
这就使用到了浏览器中的cookie:
比如——登录了CSDN之后,按如图操作你就可以看到CSDN在你本地浏览器中存储的cookie信息!
使用Django在服务器中设置cookie及获取删除cookie:
import datetime
def set(request):
response = HttpResponse('设置cookie')
#response.set_cookie('name', 'xiaoming ') # 默认关闭浏览器则过期
#response.set_cookie('name', 'xiaoming', max_age=100) # 100s后过期
response.set_cookie('name', 'xiaoming', expires=datetime.datetime(2020,10,1)) # 指定过期时间
return response
def get(request):
cookie = request.COOKIES
print(cookie.get('name'))
return HttpResponse('获取cookie')
def delete(request):
rs = HttpResponse('删除cookie')
rs.delete_cookie('name')
return rs
注意:
- 设置cookie值以及删除cookie值都是response对象的操作,而获取cookie是从requeset相应中获得的。
- 虽然cookie可以保存状态但注意不要存储敏感信息。
以上是关于36.Django中设置获取和删除cookie的主要内容,如果未能解决你的问题,请参考以下文章
如何在 WordPress 中设置、获取和销毁 cookie?