我正在尝试弄清楚 cookie 在 Python 中是如何工作的 Bottle应用。请善待,因为我是 Python 的新手。如何从我设置的 cookie 中读取值?
例子:
@route('/cookie_setpage/')
def settingcookie():
response.set_cookie('Cookie_name','Some value')
return 'Set!'
@route('/cookie_readpage/')
def testingcookie():
r=request.get_cookie('Cookie_name')
return str(r)
当我这样做时,我得到文本“无”作为返回值,这似乎是默认值或其他内容。我应该如何访问通过 get_cookie
获取的 cookie 中的文本“Some value”?
最佳答案
您的解决方案
bottle
如果您不指定它,则不会随 cookie 一起发送路径,这意味着浏览器负责决定使用哪个 path
cookie(出于某种原因, Bottle 文档说明了其他内容)。
(如果您不知道路径是什么,请阅读此答案中的其他标题)。
RFC 2109 (搜索“解释 Set-Cookie”)声明 Cookie 的默认路径是生成 cookie 的路径 — /cookie_setpage
,在您的情况下。
这当然意味着 cookie 没有被发送到 /cookie_readpage
。
要解决这个问题,只需在设置 cookie 时定义一个路径:
response.set_cookie('Cookie_name','Some value', path='/') # Your entire site.
什么是cookie路径?
路径是cookie的一个属性。
浏览器只会将 cookie 发送到 cookie 路径“下方”的页面。
因此,如果您将 cookie 路径设置为 /cookie_setpage
,则 /cookie_setpage/cookie_readpage
会获取 cookie,但 /cookie_readpage
不会
如果您将它设置为 /
,那么任何页面都会获取它,因为它是您网站的根目录。
关于python - 在 Python Bottle 应用程序中读取 cookie 文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21215904/