python - 在 Python Bottle 应用程序中读取 cookie 文本值

标签 python cookies bottle

我正在尝试弄清楚 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/

相关文章:

python - 执行动态 python 函数以响应 HTTP 调用

python - 如何从该应用程序中调用 Python Bottle API

python - 如何从 itertools.product 获取索引

python - 读取和处理另一个控制台应用程序的标准输入输出

python - 如何增加turtle.tracer()的延迟? [PYTHON]

javascript - 访问子域中的 cookie

jquery - 使用 jquery 创建 cookie

python - 为odoo中的特定组发送通知

objective-c - 如何使用 Cocoa 应用程序读取 Safari Cookie?

python - html按钮使用bottle调用python函数