cookie和session

cookie

cookie由来

http协议是无状态的,对于服务器来说,每一次请求都是全新的,有点人生若只如初见的感觉,cookie英文原意是曲奇饼干,但浏览器中的cookie,仅仅是继承了曲奇饼干小巧玲珑的特征,是指浏览器发送到浏览器上的一组键值对,这一小段信息,用来保存访问状态。

django中操作cookie

一个登陆实例

def cookieLogin(request):
    print("这是cookieLogin")
    error_msg=''
    if request.method=='POST':
        email=request.POST['email']
        pwd=request.POST['pwd']
        mian=request.POST.get('mian')
        print(mian)
        print(email,pwd)
        is_ok=UserInfo.objects.filter(email=email,password=pwd)
        print(is_ok)
        res={
   'code':0}
        if is_ok:
            #登陆成功 判断求return_url
            next_url=request.GET.get('return_url','/Base/')
            print('动态跳转'+next_url)
            rep=redirect(next_url)
            # res['next_url']='/Base/'
            # return JsonResponse(res)
            # rep=redirect('/Base/')
            if mian:
                print("免登陆7天")
                # rep.set_cookie('h1','dsb1',max_age=int(mian)*24*60*60)#七天免登陆
                rep.set_signed_cookie('h1','dsb1',salt='lhj',max_age=int(mian)*24*60*60)#七天免登陆
            else:
                rep.set_signed_cookie('h1','dsb1',salt='lhj', max_age=60)
            # rep.delete_cookie('h1')
            print("#"*120)
            return rep
            # return HttpResponse(json.dumps(res))
            # return redirect('/index/')
        else:
            res['code']=1
            res['err_msg']='用户名或密码错误'
            return JsonResponse(res)
            # return HttpResponse(json.dumps(res))
            # return HttpResponse('用户名或密码错误')
    return render(request, "cookieLogin.html",{
   'error_msg':error_msg})

获取cookie

request.COOKIES['key']
request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)

参数:

default: 默认值
salt: 加密盐
max_age: 后台控制过期时间

设置cookie

rep = HttpResponse(...)
rep = render(request, ...)

rep.set_cookie(key,value,...)
rep.set_signed_cookie(key,value,salt='加密盐',...)

参数:

key,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值