设置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是由浏览器自己去完成的