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

    
    
  • 相关阅读:
    arcgis for silverlight 控制图层显示级别
    Telerik for silverlight RadAutoCompleteBox 动态数据源
    ARM嵌入式学习--OK6410裸板程序--2.GPIO控制LED跑马灯(从ARM汇编跳转到C语言)
    ARM嵌入式学习--OK6410裸板程序--1.GPIO控制LED
    Linux内核移植--1.添加NAND Flash分区
    Linux 快速释放端口与释放内存缓存
    jquery ajax session超时处理
    相濡以沫不如相忘江湖
    SQL Server数据库无法启动(万金油解决办法)
    多显示器实现屏幕扩展(VGA DVI HDMI)
  • 原文地址:https://www.cnblogs.com/effortsing/p/10396187.html
Copyright © 2020-2023  润新知