如何在Django中指定多值cookie的分隔符?

时间:2013-06-28 00:23:33

标签: python django

在Django中创建多值cookie时,如何指定每个键/值对之间的分隔符,以便cookie接收分隔符的ASCII字符表示而不是八进制表示?这就是我目前正在做的事情:

uid = 1
dev = 'computer'
cookie_value = 'uid:%s,dev:%s' % (uid, dev)
response.set_cookie(key="profile", value=cookie_value)

如果我通过Python调试器运行它,cookie_value包含:

'uid:1,dev:computer'

但是,如果我在浏览器中检查cookie,我会看到:

'uid:1\054dev:computer'

如何让Django用逗号代替'\ 054'?

感谢。

1 个答案:

答案 0 :(得分:3)

你的答案是here

  

Cookie编码

     

为了修复Internet Explorer,Safari和其他浏览器中的cookie错误,我们对cookie值的编码进行了更改,以便将逗号和分号字符视为非安全字符,因此编码为\ 054和\ 073分别。这可能会产生向后不兼容性,特别是如果您在cookie中存储逗号或分号并且具有解析和操作客户端cookie值的javascript代码。