首页 > Python > django > 利用django自带方法来测试浏览器是否接受cookie
2015
03-09

利用django自带方法来测试浏览器是否接受cookie

有些时候想用Cookies来做一些事情,但是又无法确定用户的浏览器是否已经打开Cookies。

以下是摘自django book里的原话

“cookie的存储是自愿的,一个客户端不一定要去接受或存储cookie。 事实上,所有的浏览器都让用户自己控制 是否接受cookies。 ”

所以说,检测用户浏览器Cookies的支持性是很有必要的。下面就通过我自己写的一个用户登录例子来讲述一下。

再一次引用 django book 的 话:

“你只需在视图(view)中调用 request.session.set_test_cookie(),并在后续的视图(view)、而不是当前的视图(view)中检查 request.session.test_cookie_worked() 。”

“虽然把 set_test_cookie()test_cookie_worked() 分开的做法看起来有些笨拙,但由于cookie的工作方式,这无可避免。 当设置一个cookie时候,只能等浏览器下次访问的时候,你才能知道浏览器是否接受cookie。”

“检查cookie是否可以正常工作后,你得自己用 delete_test_cookie() 来清除它,这是个好习惯。 在你证实了测试cookie已工作了之后这样操作。”

视图代码部分:

用户第一次请求页面时,走的是 else分支,同时set了一个test_cookie

当用户填写表单提交到后台是,走的是if分支,同时判断cookie是否工作,检测完成后删除了创建的cookie.

 

效果图:

开启cookie

利用django自带方法来测试浏览器是否接受cookie - DJANGO那些事儿 - 1

利用django自带方法来测试浏览器是否接受cookie - DJANGO那些事儿 - 2

 

未开cookie

利用django自带方法来测试浏览器是否接受cookie - DJANGO那些事儿 - 3

利用django自带方法来测试浏览器是否接受cookie - DJANGO那些事儿 - 4

 

最后编辑:
作者:hanxin
从前有个人关注了我,结果那一年开始ta走向了人生的巅峰!

留下一个回复

你的email不会被公开。