Django(part36)--cookies(Django3)

网友投稿 243 2022-08-31


Django(part36)--cookies(Django3)

学习笔记,仅供参考,有错必究

文章目录

​​cookies和session​​

​​cookies​​

​​关于自动登录​​​​HttpResponse 关于cookie的添加修改删除​​​​Django中关于cookie的使用​​​​获取cookie​​​​举个例子​​

cookies和session

cookies

cookies是保存在客户端浏览器上的存储空间,通常用来记录浏览器端的信息和当前连接的确认信息;cookies 在浏览器上是以键-值对的形式进行存储的,键和值都是以ASCII字符串的形式存储(不能是中文字符串);在Django 服务器端设置浏览器的COOKIE必须通过 HttpResponse对象来完成。

注意,cookies跟域名相关,也就说如果我们在网站A获取了cookies,那么这个cookies在另一个网站B就无效了。同时,如果我们在网站A拿到了一个cookies,在此之后,无论我们访问网站A的哪个网页,都会带着这个cookies(在该cookies过期之前)。

关于自动登录

HttpResponse 关于cookie的添加修改删除

添加和修改cookie

HttpResponse.set_cookie(key, value='', max_age=None, expires=None)#key:cookie的名字(最好别用中文)#value:cookie的值(最好别用中文)#max_age:cookie存活时间, 以秒为单位(默认为永远存活)#expires:具体过期时间, 比如2021年1月1日前有效datatime(2021,1,1)

删除cookie

HttpResponse.delete_cookie(key)#key为Cookie的键#删除指定的key的Cookie, 如果key不存在则什么也不发生。

Django中关于cookie的使用

方法1:通过HttpResponse将cookie保存进客户端

用法:

from django.import HttpResponseresp = HttpResponse()resp.set_cookie('cookies名', cookies值, 超期时间)

方法2:使用render对象将cookie保存进客户端

用法:

from django.shortcuts import renderresp = render(request,'xxx.html',locals())resp.set_cookie('cookies名', cookies值, 超期时间)

方法3: 使用redirect对象将cookie保存进客户端

用法:

from django.shortcuts import redirectresp = redirect('/')resp.set_cookie('cookies名', cookies值, 超期时间)

获取cookie

我们可以通过request.COOKIES(请求里的Cookies对象) 绑定的字典(dict) 获取客户端的COOKIES数据:

value = request.COOKIES.get('cookies名', '没有值')print("cookies名 = ", value)

举个例子

我们创建一个新项目mywebsite_bookstore,在项目下添加两个应用(bookstore, userinfo),创建一个模板文件templates,在mysql中创建新数据库mybookstore,再进行一系列配置,这个过程我就不演示了。

配置完成之后,我们在主urls.py中添加两个路由:

from django.urls import re_pathfrom django.contrib import adminfrom django.conf.urls import includefrom . import viewsurlpatterns = [ re_path(r'^admin/', admin.site.urls), re_path(r'^bookstore/', include('bookstore.urls')), re_path(r'^test_cookie/', views.test_cookie), re_path(r'^show_cookie/', views.show_cookie), re_path(r'^userinfo/', include('userinfo.urls')),]

在主视图文件views.py中添加两个视图函数:

def test_cookie(request): resp = HttpResponse("OK") return respdef show_cookie(request): dic = request.COOKIES return HttpResponse(str(dic))

向值。

我们打开开发者工具(DevTool),依次进入Application、Storage、Cookies:

我们也可以在DevTool中将这个Cookie删除,删除后,我们再刷新一下test_cookie(request): resp = HttpResponse("OK") resp.set_cookie('myschool', 'goatbishop') return resp

我们向test_cookie(request): resp = HttpResponse("OK") resp.set_cookie('myschool', 'goatbishop', max_age=10) return resp

我们先向test_cookie(request): resp = HttpResponse("OK") resp.set_cookie('myschool', 'goatbishop', max_age=7*24*60*60) return resp

首先,向test_cookie(request): resp = HttpResponse("OK") #删除和Cookies resp.delete_cookie('myschool') return resp


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Django(part39)--制作图书管理系统(django图书管理系统毕业设计)
下一篇:JAVA实现经典游戏坦克大战的示例代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~