我有一个问题,我不明白为什么...基本上我不能在Tornado / Python上设置cookie,无论是普通cookie还是安全cookie。以下是我的代码:
class API(BaseHandler):
def get(self):
self.set_secure_cookie("a_cookie", "a_value")
a_cookie = self.get_secure_cookie("a_cookie")
print(">>> a_cookie ", a_cookie)
self.set_cookie("a_cookie", "a_value")
a_cookie = self.get_cookie("a_cookie")
print(">>> a_cookie ", a_cookie)
输出是:
>>> a_cookie None
>>> a_cookie None
BaseHandler类扩展了tornado.web.RequestHandler。
关于安全cookie,我设置了cookie_secret。
我不明白我设置cookie的原因,我无法理解。我相信我遵循网站上的规则(http://www.tornadoweb.org/en/stable/guide/security.html,https://technobeans.com/2012/08/07/tornado-cookies/)
这里要理解的重要一点是 - 在下一个请求中设置cookie,而不是在当前设置。
get_cookie
获取传入请求中已存在的cookie,即浏览器发送的cookie。
这就是cookie的工作原理:
之后,get_cookie
将能够从传入的请求中获取cookie。
如果第二次运行API
处理程序,您将在输出中看到cookie的值。
有关更多信息,请参阅github上的source code for get_cookie
。