测试Django中的cookie存在

时间:2009-09-23 15:26:44

标签: python django http cookies

这里简单的东西......

如果我尝试通过

引用Django中的cookie
request.COOKIE["key"]

如果cookie不存在会导致密钥错误。

对于Django的GETPOST,由于它们是QueryDict个对象,我可以这样做

if "foo" in request.GET

非常复杂......

对于不是Try / Catch块的cookie,最接近这个的是什么......如果有的话......

2 个答案:

答案 0 :(得分:20)

request.COOKIES是一个标准的Python字典,所以语法相同。

另一种方法是:

request.COOKIES.get('key', 'default')

如果密钥存在则返回值,否则为“default” - 您可以将任何您喜欢的内容替换为“default”。

答案 1 :(得分:5)

首先,它是

request.COOKIES

不是request.COOKIE。其他人会给你一个错误。

其次,它是一个字典(或类字典)对象,所以:

if "foo" in request.COOKIES.keys()

会给你你需要的东西。 如果您想获取cookie的值,可以使用:

request.COOKIES.get("key", None)

然后,如果没有键"key",您将获得None而不是例外。