Django session设置
一、Session一些基本用法:
1、在使用session之前必须在数据库创建相关的表(django_session),一般会自动创建好
2、调用request.session
首先会接收请求头部的cookie是否有sessionid,进行表查询对比
3、如果有(如果过期了)重新生成一个sessionid
进行覆盖更新记录,并将随机生成的sessionid
添加到cookie
返回前端。
4、没有则新建存进表中的session_key
,同时将字典信息加密自动存进表中的session_data
字段,auth模块的login()函数中已经封装了这些操作。
5、删除Session:
request.session.flush()
#删除服务端的session,删除当前的会话数据并删除会话的Cookie。#这用于确保前面的会话数据不可以再次被用户的浏览器访问
request.session.clear_expired()
# 将所有Session失效日期小于当前日期的数据删除,将过期的删除
del request.session['k1']
#django-session表里面同步删除session_data中k1这个键值对
request.session.delete()
# 删除当前会话的所有Session数据,也就是当前会话的一整条数据
6、其他关于Session的设置
1 |
|
查询django_session
表:
刚建立会话的session
(第一行的数据)
{:width=”100%” align=”center”}
在已经有会话的基础上,添加了一个新的session
{:width=”100%” align=”center”}
在已经有会话的基础上,删除了这个新的session
,又回到了之前的session_data
状态
{:width=”100%” align=”center”}
❤❤❤注意:
① django session
表是针对浏览器的,不同的浏览器来 才会有不同的记录 ,也就是同一个浏览器不关闭情况下多次登录,对应的是同一个sessionid。
② 结束会话,del 会删除django_session表中对应会话的sessionid属性,而delete()则会删除整条会话属性。
③ 添加新的session并不会修改当前sessionid
属性,只会修改session data
,而通过del该关键字就会返回到添加新的session
前的session data
状态。
因此在已经存在会话时,新建新的session并不会修改当前sessionid
,因此也不会影响包含sessionid
的cookie
向服务器请求的响应结果。
二、setting.py中的session配置
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!