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