簡單的東西在這裏...測試的餅乾存在在Django
,如果我嘗試通過
request.COOKIE["key"]
引用在Django一個cookie,如果cookie不存在,這將拋出一個關鍵的錯誤。
對於Django的GET
和POST
,因爲它們是QueryDict
對象,我可以做
if "foo" in request.GET
這是奇妙複雜的...
,是不是有什麼最接近這個餅乾一個try/catch塊,如果有什麼...
簡單的東西在這裏...測試的餅乾存在在Django
,如果我嘗試通過
request.COOKIE["key"]
引用在Django一個cookie,如果cookie不存在,這將拋出一個關鍵的錯誤。
對於Django的GET
和POST
,因爲它們是QueryDict
對象,我可以做
if "foo" in request.GET
這是奇妙複雜的...
,是不是有什麼最接近這個餅乾一個try/catch塊,如果有什麼...
request.COOKIES
是一個標準的Python字典,所以相同的語法工作。
做的另一種方法是:
request.COOKIES.get('key', 'default')
如果該鍵存在返回的值,否則「默認」 - 你可以把任何你在的地方「默認」的喜歡。
首先,它是
request.COOKIES
不是request.COOKIE
。其他人會給你一個錯誤。
其次,它是一個字典(或類似字典)對象,所以:
if "foo" in request.COOKIES.keys()
會給你你所需要的。 如果你想要得到的cookie的值,你可以使用:
request.COOKIES.get("key", None)
那麼,如果沒有關鍵"key"
,你會得到一個None
,而不是例外。
由於python 2.2,你可以在request.COOKIES中使用'if'foo「 - 沒有必要添加'.keys()' – 2009-09-23 16:21:13
的權利。可能它只是我,但我更喜歡更長的版本(也許與長期以前一起工作的問題很長時間)。它更對稱,更隱含我如何檢查是否使用:在dict.keys()中的「foo」中,如果dict.values()中的「bar」... ... – kender 2009-09-23 16:28:28
@kender,則「 dict.keys中的「foo」()' - 'dict.keys()'創建一個清單,然後垃圾收集 - 額外的開銷。 – warvariuc 2013-04-04 13:30:37