【tornado】10.普通cookie缓存

设置cookie的代码:

self.set_cookie(name,value,domain=None,expires=None,path="/",expires_days=None,**kwargs)

参数的意义:

name cookie名
value cookie值
domain 提交cookie时匹配的域名
path 提交cookie时匹配的路径
expires cookie的有效期,可以是时间戳整数,时间元祖,datetime类型,为UTC时间
expires_days cookie的有效天数,优先级低于expires

设置cookie其实可以通过设置header的set-header来实现,但是一般使用set_cookie语句

首先来设置一个简单的cookie:

在application中添加设置cookie的页面路径:

(r'/pcookie',PCookieHandler),

然后在index中添加页面类PCookieHandler:

class PCookieHandler(RequestHandler):
    def get(self, *args, **kwargs):
        #self.set_cookie("cookie1","value1")
        self.set_header("Set-Cookie","cookie2=value2;Path=/")
        self.write("set cookie finished")

在浏览器中输入:http://localhost:6578/pcookie,然后点一下URL地址旁边的那个感叹号:
在这里插入图片描述
然后可以看到我们设置好的cookie:
在这里插入图片描述



然后我们来获取一下cookie:

获取cookie代码:

get_cookie(name,default=None)

参数:

name 要获得的cookie名称
default 没有cookie时返回的值

首先增加一个获得cookie的路由页面:

(r'/getpcookie',GetPCookieHandler)

然后写这个页面:

class GetPCookieHandler(RequestHandler):
    def get(self, *args, **kwargs):
        cookie=self.get_cookie("cookie1","未登录")
        print("cookie=",cookie)
        self.write("get cookie successfully")

这个页面的意思是我收集一个叫cookie1的cookie,如果没有收集到的话就设置变量cookie的值为“未登录”,在服务器端打印cookie结果,在浏览器中显示"get cookie successfully"



再写一个清除cookie的代码:

清除特定cookie的代码:

clear_cookie(name,path="/",domain=None)

清除所有cookie的代码:

self.clear_all_cookies(path="/",domain=None)

删除名为name,路径为"/",域名为domain的cookie
删除cookie的页面类:

class ClearPCookieHandler(RequestHandler):
   def get(self, *args, **kwargs):
       self.clear_cookie("cookie2")
       self.write("the cookie has been removed")
  • 执行清除cookie操作后,不是马上删除掉浏览器端的cookie,而是给cookie的值设空,并设置其有效期为失效。
  • 真正删除cookie是由浏览器自己去完成的

猜你喜欢

转载自blog.csdn.net/AXIMI/article/details/86531744
10.