django-session

session

session和cookie的作用有点类似,都是为了存储用户相关的信息,不同的是cookie存储在本地浏览器,session是一个思路,一个概念,一个服务器存储授权信息的解决方案,不同服务器,不同的框架,不同的语言有不同的实现方式,虽然实现方式不一样,但是目的都是为了服务器为了方便存储数据,session的出现是为了解决cookie存储数据不安全的问题

cookie和session的使用: web开发发展至今,cookie和session出现了非常成熟的方案。在如今的市场或者企业里,一般都有两种存储方式

  1. 存储在服务端:通过cookie存储一个session,然后具体的数据则保存在session中,如果用户已经登陆,则服务器会在cookie中保存一个sessionid,下次再次请求时,会把该session携带上来,服务器根据sessionid在session库中获取用户的session数据
  2. 将session数据加密,然后存储在cookie中

session的使用

设置session: request.session['键'] = 值
在这里插入图片描述
默认存储在数据库:django_session表中
在这里插入图片描述

  • session的常用方法
    1.get:用来从session中获取指定值
    2.pop: 从session中删除一个值,并且可以返回删除的值
    3.keys:从session中获取所有的值
    4.items: 从session中获取所有的键值对
    5.clear:清除当前这个用户的session数据
    6.flush: 删除session并且删除咋爱浏览器中存储的session_id,一般都在注销时候用的多
    7.set_expiry(value): 设置过期时间
    • 整数:代表秒数,表示多少秒后过期
    • 0 : 代表只要浏览器关闭, session就会过期
    • None: 会使用全局的session配置, 在settings.py中设置SESSION_COOKIE_AGE来配置全局的过期时间, 默认是1209600秒,就是2周时间
      8.clear_expired: 清除过期的session, django并不会清除过期的session, 需要定期手动的清理 或者在终端 使用命令行 python manage.py clearsessions
      在这里插入图片描述
      在这里插入图片描述

session的存储机制

默认情况下,session数据存储到数据库, 也可以将session存储到其他地方,可以通过设置SESSION_ENGINE来更改session的存储位置,这个配置为5种方案

  1. django.contrib.sessions.backends.db : 使用数据库, 默认方案
  2. django.contrib.session.backends.file: 使用文件存储session
  3. django.contrib.session.backends.cache:使用缓存方式存储session,前提是必须在settings.py中配置好CACHES,并且使用Memcached,而不能使用纯内存来作为缓存
  4. django.contrib.session.backend.cached_db: 在存储数据库时, 会将数据先存储到缓存中,在存储到数据库, 这样就可以保证数据不会丢失
  5. django.contrib.sessions.backends.signed_cookies: 将session信息加密后存储到浏览器的cookie中,这种方式要注意安全, 需要设置SESSION_COOKIE_HTTPONLY = True,那么浏览器就不能通过js操作session数据, 还需要对settings.py中的SECRET_KEY进行加密, 存储的数据不能超过4kb

django.contrib.session.backend.cached_db方式的配置

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值