Django SESSION 和COOKIE

2017-01-11 15:23:38来源:oschina作者:明月知心人点击

SEESION:


SESSION 一般用来‘’保持会话‘’,Session 对象存储特定用户会话所需的属性及配置信息,当页面跳转时,会话不会消失,会话状态仅在支持 cookie 的浏览器中保留。


设置SESSION


request.session['Key'] = Value ( Value 一般是 1 个字典)


获取SESSION


request.session['Key'] 或request.session.get('key',None)


删除SESSION


del request.session['Key']


设置SESSION 过期时间


settings.py 模块中设置---新增 SESSION_EXPIRE_AT_BROWSER_CLOSE=True(默认(不设置)为Flase) SESSION_COOKIE_AGE=60 (默认(不设置为)2周,单位为秒)


使用案例:


from django.shortcuts import render, redirect
#登录
def login(request):
if request.method == 'POST':
username = request.POST['user']
pwd = request.POST['password']
if username == 'lee' and pwd == '123':
request.session['is_login'] = {'username':username}
return redirect('/main/')
else:
ret = {'ret':'用户名密码错误'}
return render(request, 'login.html', ret)
return render(request, 'login.html')
#首页
def main(request):
msg = request.session['is_login']
if msg:
return render(request, 'main.html', {'msg':msg})
else:
return redirect('/login/')
#退出
def logout(request):
del request.session['is_login']
return redirect('/login/')

SESSION 和COOKIE 之间的关系:


SESSION:一般保存在远程服务器(数据库、内存、缓存)
COOKIE: 一般保存在本地
SESSION 默认存在django_session 数据库表中
request.session['key']={ 'key1':'value1'} 中的key 为序列化且加密后cookie
一般情况下,浏览器禁用 cookie 后,session 也不可用

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台