在本地环境中进行自己的测试
我在本地环境中测试了您的代码并且运行良好。
在 C9 测试我自己的
深入研究我意识到的问题,c9 是在$ 符号处截断您的 cookie。要检查它,我只需在this point 输出一些变量值。
data = self.request.COOKIES.get(self.cookie_name)
print 'cookies->', self.request.COOKIES
print 'data->', data
messages = self._decode(data)
print 'messages->', messages
结果是:
cookies-> {'messages': '00060c532edb4c08c778df44306c21e7aacfc15f$'}
data-> 00060c532edb4c08c778df44306c21e7aacfc15f$
messages-> None
--> 0
--> ['messages']
确认
为了确定这是一个 c9 问题,我刚刚写了一个小 php 程序:
Set cookie page
<?php
setcookie("c", "00060c532edb4c08c778df44306c21e7aacfc15f$also_this");
?>
Read cookie page
Cookie value:
<?php
echo $_COOKIE['c'];
?>
Results
Cookie value: 00060c532edb4c08c778df44306c21e7aacfc15f
回答
然后,您的问题似乎与 C9 平台而不是 django 框架有关,看起来像是对该服务的错误、“功能”或约束:它会在 $ 字符之后截断剩余的 cookie 数据。 I ask them for an explanation.