django中session的设置、获取、删除和session的特点

一、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. 

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专职

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值