一、Cookie
存在于浏览器端的一串密文,是认证后的用户才拥有的钥匙(这里也包含匿名访问网站的用户),对应某一个用户,类似于表示用户身份id的作用。
二、Session
在服务器中存储登录用户临时信息的一个数据库,每一条记录对应是一个sessionid和某一个用户的信息,这个sessionid正是客户端存储的cookie键值对中的sessionid的值,以此来表明是具体某一个用户。
三、在Django中的应用
cookie
def index(request): print(request.COOKIES.get('name')) request.set_cookie('name','xff') if request.COOKIES.get('name'): pass # 逻辑代码 return HttpResponse('我是index页面,只有登录了才能看')
seeion
# 新增 def set_session(request): request.session['name'] = 'jason' request.session['name1'] = 'egon' return HttpResponse('ok') # 获取 def get_session(request): print(request.session.get('name')) print(request.session.get('name1')) return HttpResponse('ok') # 删除数据库中信息 def delete_session(request): request.session.delete() return HttpResponse('ok') # 清空数据库中以及浏览器中存储信息 def flush_session(request): request.session.flush() return HttpResponse('ok')
一旦你设置了session的信息,浏览器就会存储一个名为sessionid的键值对
Django的session默认保存14天
登录校验用装饰器检测session有没有匹配的信息,跳转登录时可以添加一个get参数next=目标地址,登录时获取当前的get参数中next的值,也就是目标地址,成功后跳转,也就是用户从商品页跳转登录页,登录成功后依然可以回到商品页