对Django框架中Cookie的简单理解

Posted 言守中

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对Django框架中Cookie的简单理解相关的知识,希望对你有一定的参考价值。

概念的理解:
首先Cookie和Session一样,是django中用于视图保持状态的方案之一。
为什么要进行视图保留呢,这是因为浏览器在向服务器发出请求时,服务器不会像人一样,有记忆,服务器像鱼一样,在你一次请求结束后她会很快忘掉你的,对她来说你的每一次请求都是新鲜的,这要是爱情就好了哈,可以爱情保鲜!闲话不多说,这种状态就是所谓的 ”浏览器请求服务器是无状态“,根本原因就复杂一些了,需要简单了解些网络编程中套接字Socket的通信方式,简单来说就是,浏览器和服务器进行通信需要使用Socket才行,在每次服务器处理完请求返回结果后,就会关闭Socket的连接,所以当你下次发请求的时候,需要重新使Socket再来一回。
现在我们一次登入,仿佛电脑可以记住我,这是因为有了,Cookie和Session。他们哥俩可以帮助,保持住这种连接的状态,接下就说说这事是怎么在Django中实现的。


Cookie:在客户端存储的信息
  ——Cookie名称和值可以由服务器端开发自己定义,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等
  ——存储位置:Cookie信息是纯文本信息,据说现在Windows权限管理严格了,放在用户下cookie随机生成的文件夹里了,这不重要
  ——信息存储形式:键值对
  ——Cookie基于域名安全,不同域名的Cookie是不能互相访问的,当浏览器请求某网站时,会将本网站下所有Cookie信息提交给服务器
  ——典型应用:记住用户名,网站广告推送

Django的工作流程:在Pycharm中创建很方便,大部分都可以自动配置完,Django是MVT模式设计的,降低耦合,流程很重要,要彼此配合。
M:models,主要用于和数据库打交道,定义模型类class
V:views,接收request请求,从数据库得来数据,用上下文传递给Templates处理,最后返回Response,切记需要配置相应的url
T:Templates,根据views发来的上下文中的数据,返回响应的模板给views

以下是简单的cookie的设置
Cookie的写:
  1.在应用视图/views.py文件下,创建视图cookie_set
          def cook_set(request):  #request可以是任意的,但是为了看词知义,一般代指浏览器的请求
              response = HttpResponse(‘<h2>hello python</h2>‘)   # 这里是很随便的写了些
              response.set_cookie(‘pwd’,‘python’)  # 这一布很重要,是Cookie 设置的重要一步
              return response

  2.配置url
    url(r‘^cookie_set/$, views.cookie_set‘)

  3.在终端启动服务器,在浏览器输入网址http://127.0.0.1:8000/cookie_set/

  4.在浏览器中,‘开发者工具’Response中查看Cookie设置信息

Cookie的读取:Cookie信息被包含在请求头中,使用request对象的COOKIES属性访问

  1.创建视图cookie_get
    def cookie_get(request):
    response = HttpResponse("读取Cookie,数据如下:<br>")
    if request.COOKIES.has_key(‘pwd‘):    
      response.write(‘<h1>‘ + request.COOKIES[‘pwd‘] + ‘</h1>‘)  # COOKIES属性是重点,是用来获取cookie的
    return response

  2.配置url
    url(r‘^cookie_get/$‘, views.cookie_get)

  3.服务器后在浏览器输入如下,网址http://127.0.0.1:8000/cookie_get/,查看结果 


  4.在浏览器中,‘开发者工具‘请求头Request中查看Cookie信息


知识无止境
坚持总结,哪怕是很简陋的语言

以上是关于对Django框架中Cookie的简单理解的主要内容,如果未能解决你的问题,请参考以下文章

Django框架--cookie和session

pyhton框架Django之cookie和session

Django 框架篇: Cookie 与 Session

Django项目之cookie+session

Session

Django 基础篇章