问题是......这一行:
x = cookie['r'].value
它希望获得名为" r"的cookie。但它不能,因为它还没有确定。
要设置它必须不会导致脚本错误。所以也许它可以在第二次重装时得到cookie。但它拒绝这样做。
import Cookie
cookie = Cookie.SimpleCookie()
def application(environ, start_response):
cookie.load(environ['HTTP_COOKIE'])
t = 'r=rrrr'
headers = [('Set-Cookie', t),('Content-type', 'text/plain')]
start_response('200 OK', headers)
x = cookie['r'].value
yield str(x)
基本上我需要告诉
x = cookie['r'].value
即使无法获取cookie也不会造成任何麻烦。
答案 0 :(得分:0)
x = cookie.get('r') and cookie['r'].value
实际上没有尝试过(没有WSGI方便),但这是类字典对象的标准模式。
对于Python幼崽:如果密钥不存在,字典上的 get
将返回None
。 and
通过返回第一个值来“短路”,如果它是“falsy”,None
(如0和空字符串和空列表)是,如果第一个值是“,则返回第二个值” truthy”。
因此,如果没有名为“r”的Cookie,则cookie.get('r')
会返回None
,然后流程就会停止,并为x
分配值None
。如果有这样的cookie,则cookie.get('r')
将其返回。因此,评估cookie['r'].value
并为x
分配结果。