session和cookie关系:session依赖于cookie
基于cookie做用户验证时,敏感信息不适合放在cookie中
原理:
cookie定义:保存在用户游览器端的键值对
session定义:保存在服务器端的键值对
session原理:客户端发起登录请求,服务器端通过验证后,生成随机字符串返回给客户端,并且服务器端将此字符串和客户端信息存储
到本地数据库中,用于客户端下次登录验证。
session 和 cookie 区别
cookie只是保存在客户端游览器的内容为键值对的文件,session是存储在服务器端的,可以文件,缓存,数据库形式存在,随机字串和数据
存储在服务器端,只将随机字符串返回给客户端
以下为一个帐号登录实例:
![]()
def login(request):
if request.method == 'GET':
return render(request,'login.html')
elif request.method == 'POST':
user = request.POST.get('user')
pwd = request.POST.get('pwd')
if user == 'root' and pwd == '123':
# 设置session帐号登录名称及登录状态
request.session['username'] = user
request.session['is_login'] = True
request.session.set_expiry(10) # sesson超时时间10秒
return redirect('/index/')
else:
return render(request,'login.html')
def index(request):
# 获取session值
if request.session.get('is_login',None):
return render(request,'index.html',{'username':request.session['username']})
def logout(request):
# 删除所有session,进行当前登录注销
request.session.clear()
return redirect('/login')
View Code