Django中的session常见配置

Django - session

  • request.session
  • session 适合存放 和用户相关的数据
  • session 存放的数据必须能被 json 序列化
  • session 是一个类似于字典的容器
  • session 的默认存活时间默认是2周

Session 的工作原理

当用户使用 session的时候, 服务器 会 从 浏览器的 Cookie 中查找一个 cookie 的 name = sessionid
如果 能够找到 对应的 cookie , 则获取 sessionid 对应的 value, 通过 value 在服务器获取 session
如果 没有找到对应的 cookie , 服务器会创建一个新的 session对象,并将 session对象的 ID 作为 value,
将 sessionid 作为 name, 写入到 浏览器的 cookie 中

session 常见的配置


# 设置浏览器cookie 对应的 key
SESSION_COOKIE_NAME = 'sessionid'

# 设置session的默认存活时间
SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2

# 设置从项目根下获取 Cookie
SESSION_COOKIE_PATH = "/"

# 设置 session是否随浏览器的关闭而消亡
SESSION_EXPIRE_AT_BROWSER_CLOSE= False

# 设置 session数据的序列化器类
SESSION_SERIALIZER = django.contrib.sessions.serializers.JSONSerializer

session 中常见的方法

  • session 存储
session[key] = val

session.setdefault(key, val)

  • session 消亡
session.flush()
  • 设置session存活时间

session.set_expiry(val)

val 如果是一个数字,则代表 剩余多少秒消亡

val 是一个日期,则到日期时间点 消亡

  • 清除过期的 session
session.clear_expired()

session 相关的表 django-session

session_key : session的ID

session_data : session序列化的数据

expire_data : session的过期时间

django 用户登录

  • authenticate(request, username, password) : 会验证用户名、密码,如果正确,返回 user对象

  • login(request, user) : user 就是 authenticate 返回的认证后的 user 对象

  • logout(request) : 退出登录

判断用户是否登录

request.user.is_anonymous 判断当前用户是否是匿名用户

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值