django web 使用session

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38059635/article/details/82972861

Session

在web开发的过程中,对于敏感重要的信息,一般来说需要存储在服务端,比如用户信息,余额,等级,验证码等,

    在服务端进行状态保持的方案就是  Session

启用session

django项目默认启用session  如果不需要使用可以注释此行

session存储方式

在setting中设置SESSION_ENGINE项指定Session数据存储的方式,可以存储在数据库、缓存、Redis等。

1)默认存储在配置的数据库中,可以不写

2)存储到内存中速度会比较快,但是容易丢失

3)混合内存和数据库存储

4)文件session

5)加密 session cookie 

数据迁移后会在数据库中创建存储session的表  表中包括           键    值    过期时间

依赖于Cookie

所有请求者的Session都会存储在服务器中,服务器如何区分请求者和Session数据的对应关系呢?

答:在使用Session后,会在Cookie中存储一个sessionid的数据,每次请求时浏览器都会将这个数据发给服务器,服务器在接收到sessionid后,会根据这个值找出这个请求者的Session。

结果:如果想使用Session,浏览器必须支持Cookie,否则就无法使用Session了。

存储Session时,键与Cookie中的sessionid相同,值是开发人员设置的键值对信息,进行了base64编码,过期时间由开发人员设置。

使用session的操作  对象及方法

1)使用键值对的格式写 session                                          request.session['key']=value

2)根据键 取 值                                                                      request.session.get('key', 默认值)

3)清除所有session,在存储中删除值部分                             request.session.clear()

4)清除session数据,在存储中删除session的整条数据。    request.session.flush()

5)删除session中的指定键及值                                              del request.session['键']

6)设置会话的超时时间                                                          request.session.set_expiry(value)

  • 如果value是一个整数,会话将在value秒没有活动后过期。
  • 如果value为0,那么用户会话的Cookie将在用户的浏览器关闭时过期。
  • 如果value为None,那么会话永不过期。
展开阅读全文

没有更多推荐了,返回首页