Example #1
0
def set_cookie(request):
    t = request.GET.get('type')
    print(type(t))
    t = int(t)
    template = loader.get_template("test_cookie.html")
    response = HttpResponse(template.render())
    if t == 1:  # 设置key-valuecookie
        from urllib import parse
        s = parse.quote("Hello!@#$$%^& World, 上海sxt", encoding="utf-8")
        response.set_cookie("test_cookie", s)
    elif t == 2:  # 设置过期时间
        response.set_cookie("cookie_max_age", 123, max_age=10)
    elif t == 3:  #设置expires,会让max_age无效
        import datetime
        response.set_cookie("cookie_expires",
                            234,
                            max_age=10000,
                            expires=datetime.datetime(2020, 12, 1))
    elif t == 4:  # 设置path,只能在设置的路劲下访问,不同路径下key相同也是两个cookie, path默认/是根路径都可以访问
        response.set_cookie("cookie_path1", 1234, path="/polls/redirectTest2/")
    elif t == 5:  # 设置域名,只能在当前域名下访问,如果是顶级域名,那么子域名下都能访问
        response.set_cookie("cookie_domain", 3455, domain="www.shsxt.com")
    elif t == 6:  # 设置安全secure,只能在https中进行测试
        response.set_cookie("cookie_secure", 333, secure=True)
    elif t == 7:  # 设置httponly,不能用js操作cookie
        response.set_cookie("cookie_httponly", 3443, httponly=True)
    else:  # 使用set_signed_cookie()是给cookie的value加密,要穿如salt
        response.set_signed_cookie("cookie_sign", 3234234, salt="shsxt")
    return response
def UpdateUserConfig(request):

    if request.POST['themeJson']:

        response = HttpResponse()
        vUser = CommonUtils.Current(response, request)

        jobj = json.loads(request.POST['themeJson'])
        pageSize = str(jobj['gridRows'])
        themeName = str(jobj['theme']['name'])
        navType = str(jobj['navType'])
        returnValue = 0

        if pageSize:
            returnValue = returnValue + ParameterService.SetParameter(
                vUser, "User", vUser.Id, "WebPageSize", pageSize)
        if themeName:
            returnValue = returnValue + ParameterService.SetParameter(
                vUser, "User", vUser.Id, "WebTheme", themeName)
            response.set_signed_cookie(
                'theme',
                themeName,
                max_age=int(
                    ParameterService.GetServiceConfig(
                        CommonUtils.Current(response, request),
                        'CookieMaxAge')),
                salt=ParameterService.GetServiceConfig(
                    CommonUtils.Current(response, request), 'LoginUserKey'))
        if navType:
            returnValue = returnValue + ParameterService.SetParameter(
                vUser, "User", vUser.Id, "NavType", navType)
            response.set_signed_cookie(
                'UIStyle',
                navType,
                max_age=int(
                    ParameterService.GetServiceConfig(
                        CommonUtils.Current(response, request),
                        'CookieMaxAge')),
                salt=ParameterService.GetServiceConfig(
                    CommonUtils.Current(response, request), 'LoginUserKey'))
        if returnValue > 0:
            response.content = '1'
        else:
            response.content = '保存失败!'
        return response
    else:
        response = HttpResponse()
        response.content = "无保存数据!"
        return response
def GetDefaultConfig(request):
    response = HttpResponse()
    vUser = CommonUtils.Current(response, request)
    curTheme = ParameterService.GetParameter(vUser, "User", vUser.Id,
                                             "WebTheme")
    curPageSize = ParameterService.GetParameter(vUser, "User", vUser.Id,
                                                "WebPageSize")
    curNavType = ParameterService.GetParameter(vUser, "User", vUser.Id,
                                               "NavType")

    if curTheme:
        if ParameterService.GetServiceConfig(
                CommonUtils.Current(response, request),
                'LoginProvider') == 'Cookie':
            response.set_signed_cookie(
                'theme',
                curTheme,
                max_age=int(
                    ParameterService.GetServiceConfig(
                        CommonUtils.Current(response, request),
                        'CookieMaxAge')),
                salt=ParameterService.GetServiceConfig(
                    CommonUtils.Current(response, request), 'LoginUserKey'))

    outJson = "{"
    if curTheme:
        outJson = outJson + "\"theme\":{\"title\":\"默认皮肤\",\"name\":\"" + curTheme + "\",\"selected\":true}"
    else:
        outJson = outJson + "\"theme\":{\"title\":\"默认皮肤\",\"name\":\"default\",\"selected\":true}"

    if curPageSize:
        outJson = outJson + ",\"gridRows\":" + curPageSize
    else:
        outJson = outJson + ",\"gridRows\":20"

    if curNavType:
        outJson = outJson + ",\"navType\":\"" + curNavType + "\"}"
    else:
        outJson = outJson + ",\"navType\":\"AccordionTree\"}"

    response.content = outJson
    return response