Response 与 Cookie

Web服务器要完成的任务的最后一步就是向客户端返回数据。如果客户端是浏览器,那么返回的数据通常是HTML、JS、CSS或者其他类型的代码。

Cookie是保存在客户端的字典

当客户端浏览器向服务端发送数据时,将保存在客户端本地的Cookie通过HTTP请求头发送给服务端,然后服务端发送给客户端。

本例通过writeCooki函数写入了两个Cooki值,然后通过readCookie 读取这两个Cooki值,并将它们返回给客户端。本例设置了其中一个Cooki值的过期时间(20s)

1、首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html

2、在工程的Firstdjango目录中建立一个request.py脚本文件,然后在request.py文件中添加如下内容:

from django.http import HttpResponse
def myRequest(request):
response = 'scheme' + request.scheme + '<br>'
response += 'path:'+ request.path + '<br>'
response += 'method:' + request.method + '<br>'
# 下面代码获取HTTP请求头信息
response += 'HTTP_ACCEPT:' + request.META['HTTP_ACCEPT'] + '<br>'
response += 'HTTP_USER_AGENT:' + request.META['HTTP_USER_AGENT'] + '<br>'
response += 'REMOTE_ADDR:' + request.META['REMOTE_ADDR'] + '<br>'
response += 'QUERY_STRING:' + request.META['QUERY_STRING'] + '<br>'
#获取name字段的值
response += 'name:' + str(request.GET['name'])+ '<br>'
#获取age字段值
response += 'age:' + str(request.GET.get('age'))+ '<br>'
return HttpResponse(response) 3、在工程的Firstdjango目录中建立一个responseCooki.py脚本文件,然后在responseCooki.py文件中添加如下内容: from django.http import HttpResponse
import datetime
def myResponse(request):
return HttpResponse('<h1>hello world</h1>',content_type="text/html")
# 用于向客户端写入Cookie
def writeCookie(request):
#Cookie的到期时间
dt=datetime.datetime.now()+datetime.timedelta(seconds=int(20))
response=HttpResponse('writeCookie')
# 设置第1个Cookie,并设置这个Cookie的有效期(未来20s)
response.set_cookie('name','Bill',expires=dt)
# 设置第二个Cookie
response.set_cookie('age',30)
return response
def readCookie(request):
result=''
# 读取名为name的Cookie值
name=str(request.COOKIES.get("name"))
# 读取名为age的Cookie值
age=str(request.COOKIES.get("age"))
result='<h2>name:<font color="red">' + name + '</font></h2>'
result+='<h2>age:<font color="blue">' + age + '</font></h2>'
return HttpResponse(result,content_type="text/html") 4、然后在Firstdjango目录中找到urls.py脚本文件,用下面的代码代替urls.py脚本里面的内容: from django.conf.urls import url
from .import request
from .import responseCooki
urlpatterns=[
url(r'^request$',request.myRequest),
url(r'^response$',responseCooki.myResponse),
url(r'^writeCookie$',responseCooki.writeCookie),
url(r'^readCookie$',responseCooki.readCookie),
]
5、配置migrate

进入项目manage所在的目录中执行如下命令,否则会报错:no such table: django_session

进入cmd

输入盘符比如:E:

切换目录

cd E:\progect\Firstdjango

python manage.py migrate 
6、重新启动django工程

浏览器访问

http://127.0.0.1:8000/writeCookie
writeCookie http://127.0.0.1:8000/readCookie
name:Bill
age:30 关闭所有网页,退出谷歌浏览器,在20秒内重新打开浏览器访问 http://127.0.0.1:8000/readCookie
name:Bill
age:None 在浏览器输入http://127.0.0.1:8000/writeCookie会将两个Cookie写入客户端浏览器(直接下载到本地笔记本上了), 如果没有设置Cookie的有效期,那么这个Cookie在不关闭当前页面时永久有效,但如果关闭当前页面,Cookie会立刻失效。如果设置了Cookie的有效期,无论是否关闭当前页面, Cookie都会有效。一旦过了有效期,Cookie就会失效。因此,名为name的Cookie只能在20s内是有效的,超过20s就会失效。而名为age的Cookie,只要当前页面不关闭,就会永久有效, 当关闭浏览器,并重新启动后,age就会失效。 7、上面建立request.py、responseCooki.py脚本文件创建位置如下图所示:


最新文章

  1. &lt;head&gt;中&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,initical-scale=1&quot;的作用&gt;
  2. 单例模式及C++实现
  3. 《计算机问题求解》总结——2014年CCF计算机课程改革导教班(2014.07.11)
  4. 用原生javascript模拟经典FC游戏公路争霸
  5. [mac git 服务器端]
  6. SQL 按月统计(两种方式) 分类: SQL Server 2014-08-04 15:36 154人阅读 评论(0) 收藏
  7. CRT内存调试标记
  8. build.prop修改详细说明
  9. JavaScript中你所不知道的Object(一)
  10. Spring-hibernate-BaseDao
  11. [bzoj4592] [Shoi2015]脑洞治疗仪
  12. Eclipse CDT开发环境搭建及问题记录(Windows)
  13. RMQ求LCA
  14. JwtBearer认证
  15. C# IE浏览器 判断是否已经打开了指定Url
  16. [转帖]SAP进阶:再论SAP权限
  17. HTML5 &amp; tel &amp; make a phone call
  18. Google 开发的、最好用、功能最强大的网页测速与网站性能分析工具
  19. AJAX里使用的弹窗样式 tanchuang.js tanchuang.css
  20. 20155316 《网络对抗》Exp8 Web基础

热门文章

  1. resultSet.getMetaData() 获得表结构
  2. springboot mybatis 的SQL异常不输出错误到控制台问题排查
  3. Disconnected from the target VM, address: &#39;127.0.0.1:56577&#39;, transport: &#39;socket&#39;
  4. 第81题:搜索旋转排序数组II
  5. login.exp
  6. vue 配置CDN加速
  7. [git]本地分支关联远程仓库
  8. .net SerialPort
  9. java项目添加log4j打印日志+转换系统时间
  10. loadrunner11安装