05_request对象操作session详解
Posted nichengshishaonian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05_request对象操作session详解相关的知识,希望对你有一定的参考价值。
在django中操作session
django中的session
默认情况下是存储在服务器的数据库中的,在表中会根据sessionid
,即session_key数据,然后再把这个sessionid
放到cookie中发送给浏览器存储,浏览器下次再向服务器发送请求的时候会自动的把所有cookie
信息都发送给服务器,服务器再从cookie
中获取sessionid
然后再从数据库中获取session
数据。但是我们在操作session的时候,这些细节根本不用管,我们只需要通过request.session
即可操作。 示例代码如下:
def session_test(request):
request.session.get('username')
return HttpResponse('获取session')
session
常用方法如下:
get
: 从session中获取指定值pop
: 从session中删除一个值, 并返回keys
: 从session中获取所有的键(key)items
: 从session中获取所有的值, 返回如这样的数据:dict_items([(‘username‘, ‘long‘), (‘pwd‘, ‘yanyan‘)])
clear
: 清除当前用户的session数据,sessionid
还会存在flush
: 删除session并且删除浏览器中存储的sessionid
, 一般在注销的时候用得比较多 (会把服务器中django_session表中的数据一并删除掉)set_expiry(value)
: 设置过期时间 默认不设置的话,过期时间是2周
*整数
: 代表秒数,表示多少秒后过期
*0
: 零, 代表只要浏览器关闭,session就会过期
*None
: 使用全局的session配置。在session.py
中可以设置SESSION_COOKIE_AGE
来配置全局的过期时间, 默认也是两周过期- clear_expired: 清除过期的
session
。 Django并不会清除过期的session,需要定期手动的清理,或者是在终端,使用命令行python manage.py clearsessions
来清除过期的session
以上是关于05_request对象操作session详解的主要内容,如果未能解决你的问题,请参考以下文章
python requests模块session的使用建议及整个会话中的所有cookie的方法