django 关闭浏览器,怎样清除 cookies 和 session?

设置 Cookie

1. def cookie_set(request):
2. response = HttpResponse("<h1>设置 Cookie,请查看响应报文头</h1>")
3. response.set_cookie('h1', 'hello django')
4. return response

读取 Cookie

1. def cookie_get(request):
2. response = HttpResponse("读取 Cookie,数据如下:<br>")
3. if request.COOKIES.has_key('h1'):
4. response.write('<h1>' + request.COOKIES['h1'] + '</h1>')
5. return response

以键值对的格式写会话。

1. request.session['键']=值

根据键读取值。

1. request.session.get('键',默认值)

清除所有会话,在存储中删除值部分。

1. request.session.clear()

清除会话数据,在存储中删除会话的整条数据。

1. request.session.flush()

删除会话中的指定键及值,在存储中只删除某个键及对应的值。

1. del request.session['键']

设置会话的超时时间,如果没有指定过期时间则两个星期后过期。 如果 value 是一个整数,会话将在 value 秒没有活动后过期。 如果 value 为 0,那么用户会话的 Cookie 将在用户的浏览器关闭时过期。 如果 value 为 None,那么会话永不过期。

1. request.session.set_expiry(value)

Session 依赖于 Cookie,如果浏览器不能保存 cookie 那么 session 就失效了。因为它需要浏览器的 cookie 值去 session 里做对比。session 就是用来在服务器端保存用户的会话状态。

cookie 可以有过期时间,这样浏览器就知道什么时候可以删除 cookie 了。 如果 cookie 没有设置过期时间,当用户关闭浏览器的时候,cookie 就自动过期了。你可以改变 SESSION_EXPIRE_AT_BROWSER_CLOSE 的设置来控制 session 框架的这一行为。缺省情况下,SESSION_EXPIRE_AT_BROWSER_CLOSE 设置为 False ,这样,会话 cookie 可以在用户浏览器中保持有效达 SESSION_COOKIE_AGE 秒(缺省设置是两周,即 1,209,600 秒)如果你不想用户每次打开浏览器都必须重新登陆的话,用这个参数来帮你。如果 SESSION_EXPIRE_AT_BROWSER_CLOSE 设置为 True,当浏览器关闭时,Django 会使 cookie 失效。

SESSION_COOKIE_AGE:设置 cookie 在浏览器中存活的时间。

发表评论

后才能评论