session是存放在服务端的,在django中使用session必须要先在数据库中创建django_session表,session相关信息都要依赖此表 获取session request.session[status]request.session.get(status)#一般用get,无此键返回None不报错 设置session #在使用session之前
session是存放在服务端的,在django中使用session必须要先在数据库中创建django_session表,session相关信息都要依赖此表 获取session
设置session #在使用session之前必须在数据库创建相关的表(django_session) #调用request.session首先会接收请求头部的cookie是否有sessionid,进行表查询对比 #如果有重新生成一个sessionid进行覆盖更新记录,并将随机生成的sessionid添加到cookie返回前端 # 没有则新建存进表中的session_key,同时将字典信息加密自动存进表中的session_data字段 request.session['status']=True # 存在自动覆盖 request.session.setdefault('k1',123) # 存在则不设置 删除session request.session.flush()#删除服务端的session,删除当前的会话数据并删除会话的Cookie。 request.session.clear_expired()# 将所有Session失效日期小于当前日期的数据删除,将过期的删除 del request.session['k1']#django-session表里面同步删除 request.session.delete()# 删除当前会话的所有Session数据 更多session操作 # 所有 键、值、键值对 request.session.keys() request.session.values() request.session.items() #获取sessionid的值 session_key = request.session.session_key #检查会话session的key在数据库中是否存在 request.session.exists("session_key") #session_key就是那个sessionid的值 # 设置会话Session和Cookie的超时时间 request.session.set_expiry(value) * 如果value是个整数,session会在些秒数后失效。 * 如果value是个datatime或timedelta,session就会在这个时间后失效。 * 如果value是0,用户关闭浏览器session就会失效。 * 如果value是None,session会依赖全局session失效策略。 Session详细流程解析
Django中的Session配置 Django中默认支持Session,其内部提供了5种类型的Session供开发者使用。 1. 数据库Session
2. 缓存Session
3. 文件Session
4. 缓存+数据库
5. 加密Cookie Session
其他公用设置项:
|
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27