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

1,775 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

引言——我们都知道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

注意:

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

🔆In The End!

请添加图片描述

从现在做起,坚持下去,一天进步一小点,不久的将来,你会感谢曾经努力的你!

本博主会持续更新爬虫基础分栏及爬虫实战分栏,认真仔细看完本文的小伙伴们,可以点赞收藏并评论出你们的读后感。并可关注本博主,在今后的日子里阅读更多爬虫文!

如有错误或者言语不恰当的地方可在评论区指出,谢谢!
如转载此文请联系我征得本人同意,并标注出处及本博主名,谢谢 !