Пример #1
0
def cookie(request):
    # 设置cookie
    rep = HttpResponse("aaa")
    rep = render(request, 'index.html')
    rep.set_cookie(key, value)
    rep.set_signed_cookie(key, value, salt='加密的字符')  # 带签名的cookie,加密,加密字符或名字随意指定有意义即可
    # 解密cookie
    request.get_signed_cookie('key',salt='加密字符串')
    # 设置cookie N秒后时效  秒为单位
    rep.set_cookie('username11', 'value', max_age=10)
    # 设置cookie 截止时间生效
    import datetime
    current_date = datetime.datetime.utcnow()
    current_date = current_date + datetime.timedelta(second=5)
    rep.set_cookie('username111', 'value', expires=current_date)

    # 做一个checkbox,选中值,true,把选中值换算成时间,传入设置cookie,就可以实现多久时间免登陆

    #     参数:
    #     key,              键
    #     value='',         值
    #     max_age=None,     超时时间
    #     expires=None,     超时时间(IE requires expires, so set it if hasn't been already.)
    #     path='/',         Cookie生效的路径,/ 表示根路径,特殊的:跟路径的cookie可以被任何url的页面访问
    #     domain=None,      Cookie生效的域名
    #     secure=False,     https传输
    #     httponly=False    只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖
    #                       document.cookie 获取不到cookie

    #
Пример #2
0
def login(request):
    """
    :param request:
    request.POST.get('username')
    request.POST.get('password')
    :return:
    HttpResponse(json.dumps(result))
    """
    result = {
        'status': '',  # 'success' or 'failure'
        'error_msg': '',  # notes of failure
    }

    # handle wrong method
    if not is_post(request, result):
        return HttpResponse(json.dumps(result))

    username = request.POST.get('username')
    password = request.POST.get('password')

    mgr = models.ManagerInfo.objects.filter(
        username=username,
        password=password,
    )

    if mgr.count() == 1:
        result['status'] = 'success'
        response = HttpResponse(json.dumps(result))
        response.set_signed_cookie(key='username', value=username, salt=SALT)
        return response
    else:
        result['status'] = 'failure'
        result[
            'error_msg'] = 'this user does not exist, or the password is wrong'
        return HttpResponse(json.dumps(result))
Пример #3
0
def cookie(request):
    #
    # request.COOKIES
    # request.COOKIES['username111']
    request.COOKIES.get('username111')

    response = render(request,'index.html')
    response = redirect('/index/')
    # 设置cookie,关闭浏览器失效
    response.set_cookie('key',"value")
    # 设置cookie, N秒只有失效
    response.set_cookie('username111',"value",max_age=10)
    # 设置cookie, 截止时间失效
    import datetime
    current_date = datetime.datetime.utcnow()
    current_date = current_date + datetime.timedelta(seconds=5)
    response.set_cookie('username111',"value",expires=current_date)
    response.set_cookie('username111',"value",max_age=10)

    # request.COOKIES.get('...')
    # response.set_cookie(...)
    obj = HttpResponse('s')

    obj.set_signed_cookie('username',"kangbazi",salt="asdfasdf")
    request.get_signed_cookie('username',salt="asdfasdf")

    return response
Пример #4
0
def cookie(request):
    request.COOKIES
    request.COOKIES['username111']
    request.COOKIES.get('username111')

    response = render(request, 'index.html')
    response = redirect('/index/')

    # 设置cookie,关闭浏览器失效
    response.set_cookie("key", 'value')

    # 设置cookie,N秒之后失效
    response.set_cookie("key", 'value', max_age=10)

    # 设置cookie,截止时间失效
    import datetime
    current_time = datetime.datetime.utcnow()
    current_time = current_time + datetime.timedelta(seconds=10)
    response.set_cookie('key', 'value', expires=current_time)

    # 带签名的cookie
    obj = HttpResponse('ok')
    obj.set_signed_cookie('username', 'kangbazi', salt='asdfasdf')  # 加密
    request.get_signed_cookie('username', salt="asdfasdf")  # 解密

    return response
Пример #5
0
def vote(request):

    if request.method == "POST":
        post_data = request.POST.get('vote_data', None)
        print(post_data)
        if post_data:
            # 判断是否是浏览器发送过来的,而不是其他什么程序,这里我们假定只判定苹果电脑
            if "Safari" in request.META["HTTP_USER_AGENT"]:
                print("safari")
            else:
                # 如果不是浏览器打开的,就回复这句话
                return HttpResponse("请适用正确的方式提交")
            # 判断是否有cookie,有cookie
            if request.COOKIES.get('k'):
                # 有cookie,就不能投票
                print("has_cookie")
                return HttpResponse("已经提交过,请勿重复提交")
            else:
                # 没有cookie,种下cookie,并且完成投票
                print("no_cookie")
                rep = HttpResponse('OK')
                rep.set_signed_cookie('k',
                                      '123',
                                      salt='123',
                                      max_age=86400,
                                      path='/vote/')
                print("set_cookie")
                # 将投票的内容添加入数据库

                vote_number = models.Options.objects.filter(
                    name=post_data).values("vote")
                vote_number = list(vote_number)[0]["vote"]
                print("vote_number", vote_number)
                models.Options.objects.filter(name=post_data).update(
                    vote=vote_number + 1)

                # 返回正确信息
                return rep
        else:
            # 返回错误信息
            return HttpResponse("网络可能有点儿问题")
    ret = models.Options.objects.all().values("name", "vote")
    ret = list(ret)

    return render(request, 'vote.html', {"ret": ret})