设置session
调用request.session首先会接收请求头部的cookie是否有sessionid,进行表查询对比
如果有重新生成一个sessionid进行覆盖更新记录,并将随机生成的sessionid添加到cookie返回前端
没有则新建存进表中的session_key,同时将字典信息加密自动存进表中的session_data字段
request.session['status'] = True # 存在自动覆盖
request.session.setdefault('k1',123) # 存在则不设置
获取session
request.session['status']
request.session.get('status')# 一般用get,无此键返回None不报错
删除session
request.session.flush() # 删除服务端的session,删除当前的会话数据并删除会话的Cookie。
request.session.clear_expired() # 将所有Session失效日期小于当前日期的数据删除,将过期的删除
del request.session[''] # django-session表里面同步删除
request.session.delete('') # 删除当前会话的所有***Session数据
request.session.clear() # clear()是将缓存全部清空
request.session.set_expiry(30)
# 如果value是个整数,session会在些秒数后失效
# 如果value是个datatime或timedelta,session就会在这个时间后失效
# 如果value是0, 用户关闭浏览器session就会失效
# 如果value是None, session会依赖全局session失效策略
def blog(request):
resp = HttpResponse('<h1>恭喜你,看到了第一个自定义页面</h1>')
# ==============1.设置cookie=============== # 代码分割线 - 开始
resp.set_cookie('age', '120')
resp.set_signed_cookie('name', 'Tom')
# ==============1.设置cookie=============== # 代码分割线 - 结束
# ==============2.获取cookie=============== # 代码分割线 - 开始
print(request.COOKIES['age'])
print(request.COOKIES.get('age'))
# print(request.get_signed_cookie('name'))
# ==============2.获取cookie=============== # 代码分割线 - 结束
# ==============3.删除cookie=============== # 代码分割线 - 开始
# resp.delete_cookie('name')
# ==============3.删除cookie=============== # 代码分割线 - 结束
# ==============1.设置session=============== # 代码分割线 - 开始
request.session['url'] = 'www.wakey.com.cn'
request.session.setdefault('aaa', '999')
# ==============1.设置session=============== # 代码分割线 - 结束
# ==============2.获取session=============== # 代码分割线 - 开始
print(request.session['url'])
print(request.session.get('aaa'))
# ==============2.获取session=============== # 代码分割线 - 结束
# ==============3.设置有效期=============== # 代码分割线 - 开始
request.session.set_expiry(0)
# 如果value是个整数,session会在些秒数后失效
# 如果value是个datatime或timedelta,session就会在这个时间后失效
# 如果value是0, 用户关闭浏览器session就会失效
# 如果value是None,session会依赖全局session失效策略
# ==============3.设置有效期=============== # 代码分割线 - 结束
# ==============4.删除session=============== # 代码分割线 - 开始
request.session.flush('aaa') # 删除当前会话session,退出登陆
del request.session['aaa'] # 删除当前字段值
request.session.delete('aaa') # 删除当前会话所有session数据
request.session.clear('aaa') # 清除全部缓存,注销
# ==============4.删除session=============== # 代码分割线 - 结束
return resp