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

Kor*_*red 2 python cookies bottle

我试图找出如何在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)
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到文本"无"作为返回,这似乎是默认值或其他东西.我怎么想从cookie获取文本'Some value' get_cookie

Tho*_*zco 8

你的解决方案

bottle如果你没有指定它,就不会发送路径和cookie,这意味着浏览器负责决定path使用哪个cookie(由于某种原因,瓶子文档说明了其他的东西).

(如果您不知道路径是什么,请阅读本答案中的其他标题).

RFC 2109(搜索"解释Set-Cookie")指出Cookie 的默认路径是生成cookie的路径 - /cookie_setpage在您的情况下.

这当然意味着cookie没有被发送到/cookie_readpage.

要解决这个问题,只需在设置cookie时定义路径:

response.set_cookie('Cookie_name','Some value', path='/')  # Your entire site.
Run Code Online (Sandbox Code Playgroud)

什么是cookie路径?

路径是cookie的属性.

浏览器只会将cookie发送到"低于"cookie路径的页面.

因此,如果您将cookie路径设置为/cookie_setpage,则/cookie_setpage/cookie_readpage获取cookie,但/cookie_readpage不是.

如果你把它设置为/,那么任何页面都会得到它,因为它是你网站的根目录.