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

浙公网安备 33010602011771号