django2,Django mtv
学习笔记仅供参考,有错必究。
文章目录cookies和会话cookies关于自动登录HttpResponse关于Cookies添加和修改删除关于Django中的Cookies以获取Cookies为例
Cookies和会话
饼干
Cookies是存储在客户端浏览器中的存储空间,通常用来记录浏览器的信息和当前连接的确认信息;Cookies在浏览器上以键值对的形式存储,键和值以ASCII字符串(不是中文字符串)的形式存储;在Django服务器端设置浏览器COOKIE必须通过HttpResponse对象完成。
注意,cookie是和域名相关的,也就是说,如果我们在网站A获取了cookie,那么这个cookie在另一个网站b就失效了,同时,如果我们在网站A获取了一个cookie,之后,无论我们访问网站A的哪个页面,我们都会带着这个cookie(在cookie过期之前)。
关于自动登录
通常,登录网站时会使用cookies。例如,当我们登录微博时,如果我们点击记住我,那么我们的浏览器就会以cookies的形式记住用户名和密码。下次登录时,我们的帐户和密码将自动填入文本框,因此我们无需再次输入:
关于cookie的添加、修改和删除
以及添加和修改cookie httpresponse . set _ cookies(key,value= ,max _ age=none,expires=none)
# key:# key:cookie的名字(最好不要用中文)
# value:cookie的值(最好不要用中文)
#max_age:cookie生存期,以秒为单位(默认为永远)
#expires:具体的过期时间,比如2021年1月1日(2021年1月1日)之前的有效数据时间删除cookie httpresponse . delete _ cookie(key)
#key是Cookie的密钥。
#删除指定密钥的Cookie,如果该密钥不存在,则不会发生任何事情。
《姜戈》中cookie的使用
1.方法:通过HttpResponse将cookie保存到客户端。用法:
从django.http导入HttpResponse
resp=HttpResponse()
resp . set _ cookie( cookie( cookie名称,cookie值,过期时间)
2:使用render对象将cookie保存到客户端。用法:
从django.shortcuts导入渲染
resp=render(request, xxx.html ,locals())
resp . set _ cookie( cookie( cookie名称,cookie值,过期时间)
方法3:使用重定向对象将cookie保存到客户端使用:
快捷方式导入重定向
resp=redirect(/)
resp . set _ cookie( cookie( cookie名称,cookie值,过期时间)
获取cookie
我们可以通过请求绑定的字典(dict)获取客户端的cookie数据。cookie(请求中的cookie对象):
value=request . cookies . get( cookie名称,无值)
打印( cookie名称=,值)
例如
我们新建一个项目mywebsite_bookstore,在项目下添加两个应用(bookstore,userinfo),创建一个模板文件,在mysql中新建一个数据库mybookstore,并进行一系列配置。这个过程我就不演示了。
配置完成后,我们在主urls.py中添加两条路由:
从django.urls导入re_path
来自django.contrib导入管理
从django.conf.urls导入包括
从。导入视图
urlpatterns=[
re_path(r^admin/,管理网站网址),
re_path(r^bookstore/,包括( bookstore.urls ),
re_path(r^test_cookie/,views.test_cookie),
re_path(r^show_cookie/,views.show_cookie),
re_path(r^userinfo/,包括( userinfo.urls ),
]
在主视图文件views.py中添加两个视图函数:
def test_cookie(请求):
resp=HttpResponse(OK )
退货责任
def show_cookie(请求):
dic=请求。饼干
Return HttpResponse(str(dic))向http://127 . 0 . 0 . 1:8000/show _ cookie/:
我们看到了一个字典,是浏览器给服务器的cookie信息。
在Chrome浏览器的开发者工具中,我们也可以在浏览器端查看和操作所有的Cookies值。
我们打开开发者工具(DevTool),依次进入应用、存储和Cookies:
我们也可以在DevTool中删除这个Cookie。删除后我们刷新http://127 . 0 . 0 . 1:8000/show _ cookie/发现只剩下一个空字典:
这时,如果我想添加一个Cookie,那么我们可以在views.py中操作:
def test_cookie(请求):
resp=HttpResponse(OK )
resp.set_cookie(myschool , goatbishop )
返回resp我们向http://127 . 0 . 0 . 1:8000/test _ cookie/:
再次请求http://127 . 0 . 0 . 1:8000/show _ cookie/:
在查看DevTool时,我又发现了一个Cookie:
我将cookie的生存期设置为10秒:
def test_cookie(请求):
resp=HttpResponse(OK )
resp.set_cookie(我的学校, goatbishop ,max_age=10)
Return resp我们首先向http://127 . 0 . 0 . 1:8000/test _ cookie/,然后向http://127 . 0 . 0 . 1:8000/show _ cookie/:
等待11s,我们刷新DevTool,发现这个Cookie消失了:
此时,我们将cookie的生存期设置为7天(7 $ \ times \ times \ times $ 60s秒):
def test_cookie(请求):
resp=HttpResponse(OK )
resp.set_cookie(我的学校, goatbishop ,max_age=7*24*60*60)
Return resp首先向http://127 . 0 . 0 . 1:8000/test _ cookie/发出请求。获得新的cookie后,我们使用响应对象的delete_cookie方法来删除cookie:
def test_cookie(请求):
resp=HttpResponse(OK )
#删除和Cookies
resp.delete_cookie(myschool )
退货责任
转载请联系作者获得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。