一、session的设置
request.session["username"] = "smart"
request.session["age"] = 18
request.session.set_expiry(7*24*3600) # 设置session过期时间为一周后
二、获取session
username = request.session["username"]
age = request.session.get("age", "")
三、删除session
# 清除所有session
request.session.clear() # 只删除session中值得部分
# 删除所有session
# request.session.flush() # 删除session中的整条记录
# 删除key为age的session
del request.session["age"]
四、session的特点
五、session的过期时间设置
`session`的有效期时间是通过`request.session.set_expiry(value)`进行设置的。
1. 如果`value`是一个`int`类型,那么`session`将在`value`这个时间后过期,其中`value`代表的是秒。
2. 如果`value`是一个`datetime`或者`timedelta`对象,那么这个`session`将在指定的时间后过期。`datetime`必须是使用了`PickleSerializer`进行序列化的。
3. 如果`value`等于`0`,那么`session`将在web浏览器关闭后就直接过期。
4. 如果`value`等于None,那么`session`将用`settings.py`中设置的全局过期字段`SESSION_COOKIE_AGE`,这个字段默认是14天,也就是2个礼拜。
5. 读`session`的时候不会修改`session`的有效期,修改`session`的时候会重新设置`session`的有效期,会从修改的时间,重新计时。
6. 如果`settings.py`中设置了`SESSION_EXPIRE_AT_BROWSER_CLOSE=True`,那么默认讲不再使用`SESSION_COOKIE_AGE`了,而是浏览器一关闭,`session`数据就会过期。这个值默认是为`False`。
六、设置session的详细步骤
request.session['username'] = username
#上面这一句代码完成了以下事情:
#1、生成随机字符串
#2、将随机字符串写到用户浏览器cookie
#3、将随机字符串保存到服务器session
#4、在服务器随机字符串对应的字典中设置相关内容
request.session['password'] = password
return HttpResponse('登陆成功')
7. 判断是否在session里面:
"username" in request.session
8. 获取所有session的key和value
request.session.keys()
request.session.values()
request.session.items()
9.