测试Django中的cookie存在

M. *_*yan 6 python django cookies http

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

如果我尝试通过Django引用cookie

request.COOKIE["key"]
Run Code Online (Sandbox Code Playgroud)

如果cookie不存在将导致密钥错误.

对于Django的GETPOST,因为它们是QueryDict对象,我可以做

if "foo" in request.GET
Run Code Online (Sandbox Code Playgroud)

这非常精致......

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

Dan*_*man 20

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

另一种方法是:

request.COOKIES.get('key', 'default')
Run Code Online (Sandbox Code Playgroud)

如果键存在则返回值,否则为"default" - 您可以放置​​任何您喜欢的值来代替'default'.


ken*_*der 5

首先,它是

request.COOKIES
Run Code Online (Sandbox Code Playgroud)

没有request.COOKIE.其他人会给你一个错误.

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

if "foo" in request.COOKIES.keys()
Run Code Online (Sandbox Code Playgroud)

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

request.COOKIES.get("key", None)
Run Code Online (Sandbox Code Playgroud)

然后,如果没有密钥"key",你将获得一个None而不是一个例外.

  • 从python 2.2开始,你可以在request.COOKIES中使用'if"foo" - 不需要添加'.keys()' (2认同)