cookie session
cookie
# views.py def login(request): # 登陆页面 if request.mothod == 'POST': name = request.POST.get('user') pwd = request.POST.get('pwd') if name == 'yuan' and pwd == '123': ret = redirect('/index/') ret.set_cookie('key','value') # 登陆成功后,给cookie赋一组键值对
# ret.set_cookie('username','yuan',max_age=10,expires=datetime.datetime.utcnow()+datetime.timedelta(days=3))
# max_age设置cookie过期时间为10秒,expires设置cookie过期时间为3天(针对不同浏览器,需要同时设置这两个值,并设置为一样) return ret
def index(request):
# if request.COOKIES.get('key',None): # 判断用户是否有cookie设置的key
if request.COOKIES.get('key',None)=='value': # 获取cookie的值,判断key是否为value,None代表取不到时以None代替,这样不报错
return render(request,'index.html',locals())
else:
return redirect('/login/')
session(django的session默认存储在数据表中)
# views.py def login(request): # 登陆页面 if request.mothod == 'POST': name = request.POST.get('user') pwd = request.POST.get('pwd') if name == 'yuan' and pwd == '123': request.session['is_login']=True # 创建两个session
request.session['user']=name
return redirect('/index/')
def index(request): if request.session.get('is_login',None): # 获取session的值,判断is_login是否有值 name = request.session.get('user')
return render(request,'index.html',locals()) else: return redirect('/login/')
下面我们再来最后的总结一下cookie和session的知识点
一、操作Cookie
获取cookie:request.COOKIES[key]
设置cookie:response.set_cookie(key,value)
由于cookie保存在客户端的电脑上,所以,jquery也可以操作cookie。
<script src='http://830909.blog.51cto.com/static/js/jquery.cookie.js'></script> $.cookie("list_pager_num", 30,{ path: '/' });
二、操作Session(session默认在服务器端保存15天)
获取session:request.session[key]
设置session:reqeust.session[key] = value
删除session:del request.session[key]
(这个删除其实就是把数据库的session_data更新为一个其他的值了,并没有立即删除)
request.session.set_expiry(value) * 如果value是个整数,session会在此秒数后失效。 * 如果value是个datatime或timedelta,session就会在这个时间后失效。 * 如果value是0,用户关闭浏览器session就会失效。 * 如果value是None,session会依赖全局session失效策略。