Response 与 Cookie
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脚本文件创建位置如下图所示:

Response 与 Cookie的更多相关文章
- java内部发送http请求并取得返回结果,修改response的cookie
public Object userLogin(HttpServletRequest request, HttpServletResponse response, String email, Stri ...
- response.addCookie(cookie),添加失败
问题:添加cookie到浏览器如下,在浏览器f12查看请求过程,发现cookie中只添加了:JSESSIONID E849DAFEE4A36B6D955F9D96D6D06207 却没有想要的“use ...
- sanic官方文档解析之Response和Cookie
1,Sanic的返回的响应体 使用Sanic中的response模块去创建响应对象 返回文本response.text文本(直接字符串就ok) 返回html文件,直接response.html文件(类 ...
- response.addCookie(cookie)添加cookie失败.
两个if循环能进来,创建的两个cookie也能通过控制台输出. 但是却添加失败. 原因是:request.getRequestDispatcher("/MainFrame").f ...
- Symfony 2.0 认识Request, Response, Session, Cookie
在上一节中,我们提到了如何创建一个Bunlde 并且在默认控制器中添加一些方法.如果有参照之前的说法进行的话,读者很有可能会被提示说 返回的Response对象不能为空.好啦,我们就来研究一下,怎么从 ...
- tomcat 8.5 及其 9.0 response写cookie 设置damain为 [.test.com] 出错 An invalid domain [.test.com] was specified for this cookie
抛出异常: java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cooki ...
- ASP.NET之Cookie(坑爹的Response.Cookies.Remove)(转)
在web开发中Cookie是必不可少的 .NET自然也有一个强大的Cookie操作类,我们用起来也非常方便,不过在使用中我们会发现一个坑爹的事情Response.Cookies.Remove删除不 ...
- ASP.NET之Cookie(坑爹的Response.Cookies.Remove)
原文:ASP.NET之Cookie(坑爹的Response.Cookies.Remove) 在web开发中Cookie是必不可少的 .NET自然也有一个强大的Cookie操作类,我们用起来也非常方便, ...
- request response cookie session
request 1. url传递参数 1)参数没有命名, 如: users/views def weather(request, city, year): print(city) print(year ...
随机推荐
- train loss相关问题
一.train loss 收敛慢,把learning_rate调高 二.train loss不下降: 1.观察数据中是否有异常样本或异常label导致数据读取异常2.调小初始化权重,以便使softma ...
- 堆排序Heap_Sort
堆排序就是借助二叉堆进行排序,不了解二叉堆的可以先看这里.本文以升序排序为例,首先将待排序数组放置在最小堆中,此时堆顶一定是数组中最小的元素,然后删除堆顶元素,此时调整后的最小堆顶会是第二小的元素,从 ...
- SpringBoot + MySQL + MyBatis 整合 Redis 实现缓存操作
本地安装 Redis Redis 安装:https://www.cnblogs.com/oukele/p/11373052.html 项目结构: SpringBootRedis 工程项目结构如下: ...
- Django传递数据给JS
这里讲述两种方法: 一,页面加载完成后,在页面上操作,在页面上通过 ajax 方法得到新的数据(再向服务器发送一次请求)并显示在网页上,这种情况适用于页面不刷新的情况下,动态加载一些内容.比如用户输入 ...
- git commit 详解
git commit 命令用来将本地暂存的修改提交到版本库. git commit -m '提交信息'. 我们用的比较多的应该就是-m 参数.添加提交信息. 经常手抖的同学可能会知道,git comm ...
- 15-Node.js学习笔记-Express的安装及检验
最新的node已经把一些命令工具单独的分出来了,所以我们应该先下安装他的打包函数,再安装express,在进行检验就安装成功了 如需require还需在文件夹内单独安装 sudo npm instal ...
- POJ3336 Making the Grade
思路:DP 提交:1次 题解: 最开始我们可以想到,分两种序列都做一遍. 先来证明一个结论: 存在一种构造,使 \(B\) 中的数都在 \(A\) 中出现过,且这样不劣. (目的是为了转化暂时看起来虚 ...
- 51nod 1594 Gcd and Phi 反演
OTZ 又被吊打了...我当初学的都去哪了??? 思路:反演套路? 提交:\(1\)次 题解: 求\(\sum_{i=1}^{n}\sum_{j=1}^{n}\varphi(gcd(\varphi(i ...
- js中错误处理机制
1.基本知识 1. 错误对象 Error,SyntaxError,RangeError, ReferenceError,TypeError,URIError 上面的都是构造函数: new 命令可以生成 ...
- 网络_05 STP HSRP
一.案例1:STP的基本配置 将S1配置成vlan1的主根,将S2配置成vlan2的次根 查看生成树的配置:show spanning-tree 查看某个vlan生成树的详细信息:show spann ...