0
点赞
收藏
分享

微信扫一扫

37.Django中设置获取和删除cookie



引言——我们都知道HTTP(超文本传输协议)是一个无状态的协议。
那么客户端和服务器都是怎么记录登录的状态的呢——也就是怎么维持登录的呢?
(比如:你在浏览器中登录过了爱奇艺账号,哪怕你网页关闭了,只要时间不长,你再次登录的话会发现不用输入账号就已经是登录状态了!)


什么是cookie:


简单介绍一下什么是cookie,客户端浏览器上的一个文件,以键值对进行保存,类似字典{‘k’:‘v’},与服务器端没有关系,当游览器访问服务器时候,服务器会生成一个随机字符串保存在cookie中返回给客户端,这样当客户端游览器下次访问服务器端时候,会带着这个保存了的cookie访问服务器,服务器端收到请求后,经过检查此cookie已存在此随机字符串,表示此客户端为已通过认证的状态,可以直接登录。



更详细的讲解——《一篇万字博文带你入坑爬虫这条不归路(你还在犹豫什么&抓紧上车) 【❤️熬夜整理&建议收藏❤️】》


这就使用到了浏览器中的cookie:

比如——登录了CSDN之后,按如图操作你就可以看到CSDN在你本地浏览器中存储的cookie信息!

37.Django中设置获取和删除cookie_cookie的设置获取及删除

37.Django中设置获取和删除cookie_django_02

使用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

注意:


  1. 设置cookie值以及删除cookie值都是response对象的操作,而获取cookie是从requeset相应中获得的。
  2. 虽然cookie可以保存状态但注意不要存储敏感信息。


举报

相关推荐

0 条评论