django2,Django mtv

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: