对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的简单理解的更多相关文章
- Python的Django框架中的Cookie相关处理
Python的Django框架中的Cookie相关处理 浏览器的开发人员在非常早的时候就已经意识到. HTTP's 的无状态会对Web开发人员带来非常大的问题,于是(cookies)应运而生. coo ...
- Django框架 之 Cookie和Session初识
Django框架 之 Cookie和Session初识 浏览目录 Cookie介绍 Django中的Cookie Session 一.Cookie介绍 1.Cookie产生的意义 众所周知,HTTP协 ...
- 分布式队列celery 异步----Django框架中的使用
仅仅是个人学习的过程,发现有问题欢迎留言 一.celery 介绍 celery是一种功能完备的即插即用的任务对列 celery适用异步处理问题,比如上传邮件.上传文件.图像处理等比较耗时的事情 异步执 ...
- Python的Django框架中forms表单类的使用方法详解
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...
- Django框架 之 Cookie、Session整理补充
Django框架 之 Cookie.Session整理补充 浏览目录 Django实现的Cookie Django实现的Session 一.Django实现的Cookie 1.获取Cookie 1 2 ...
- Django框架07 /cookie和session
Django框架07 /cookie和session 目录 Django框架07 /cookie和session 1. django请求生命周期 2. cookie 3. session 4. 总结 ...
- Django框架中的Context使用
Django框架中的Context使用 2017年11月09日 20:01:09 aweilark 阅读数:1113 转载自:http://www.aichengxu.com/python/606 ...
- 第三百一十二节,Django框架,Cookie
第三百一十二节,Django框架,Cookie 注意:获取Cookie是在请求对象里处理,设置Cookie是在响应对象里处理 普通Cookieset_cookie()设置普通cookie 参数: ke ...
- Python的Django框架中的Context使用
Python的Django框架中的Context使用 近期整理些Python方面的知识,一旦你创建一个 Template 对象,你能够用 context 来传递数据给它. 一个context是一系列变 ...
随机推荐
- [整理] C#调用SQLDMO.DLL时间数据库备份 / 还原。 (香神无涯) // C#实现SQLSERVER2000数据库备份还原的两种方法 (带进度条)
/// <summary>/// 通过调用MSSQL的SQLDMO.DLL文件来实现备份数据库/// 1.首先在在项目中引用SQLDMO.DLL文件./// 2.在引用中的SQLDMO.D ...
- bzoj 1045 [HAOI2008] 糖果传递 —— 贪心
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1045 好像是贪心...但这是一个环... 看博客:http://hzwer.com/2656 ...
- JS——事件详情(鼠标事件:clientX、clientY的用法)
鼠标位置 >可视区位置:clientX.clientY 跟着鼠标移动的div案例 代码如下图: 这个案例,运用到前一篇文章中的event事件来处理.获取div的left和top值,当鼠标移动 ...
- Python类属性访问的魔法方法
Python类属性访问的魔法方法: 1. __getattr__(self, name)- 定义当用户试图获取一个不存在的属性时的行为 2. __getattribute__(self, name)- ...
- ruby --Paperclip::NotIdentifiedByImageMagickError
首先,如果遇到这个问题,Paperclip::NotIdentifiedByImageMagickError,先检查下环境变量是否配置了ImagicMagick的路径. cmd下path 查看,首先加 ...
- [编码]ASCII、GBK、Unicode(万国码) 和 UTF-8
American ASCII编码 (American Standard Code for Information Interchange,美国信息互换标准代码) China gbk编码 ...
- linux 新添加的硬盘格式化并挂载到目录下
需求: 新增加一块硬盘sdb,将sdb分区,只分一个区,格式化,挂载到目录/ssd下. 1. 查看现在已有的分区状态 # df –l 图中显示,没有看到sdb硬盘 2. 查看服务器安装的硬盘状态( ...
- WIN10 64位下VS2015 C#直接添加 halcon 12导出的CS文件实现视觉检测
C# halcon 12 联合编程的 实例 1.先调试好halcon程序,我以读取图片的程序为例.
- 2013款MacBook Air装Windows7单系统
经过两天的摸索,查找无数资料终于把2013款的MacBook Air装上了WIN 7,虽然网上有很多的资料但是都不是我想要的,第一个我的是2013款的MacBook Air,跟原来2012 11款Ma ...
- 学习廖雪峰的Python教程之数据类型
数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...