当前位置:   article > 正文

Django中的session常见配置_django的session设置时间退出

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

session 中常见的方法

  • session 存储
session[key] = val

session.setdefault(key, val)

  • 1
  • 2
  • 3
  • 4
  • session 消亡
session.flush()
  • 1
  • 设置session存活时间

session.set_expiry(val)

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

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 清除过期的 session
session.clear_expired()

  • 1
  • 2

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 判断当前用户是否是匿名用户

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/559616
推荐阅读
相关标签
  

闽ICP备14008679号