Python Django是否支持多值cookie?

Python Django是否支持多值cookie?,python,django,cookies,Python,Django,Cookies,我想通过Django设置一个cookie,它有几个不同的值,类似于.NET的属性。看这张照片,我不知道这是否可能。它看起来就像一根绳子,那么还有别的方法吗 我尝试向它传递数组[10,20,30]和字典{'name':'Scott','id':1},但它们只是转换为字符串格式。我目前的解决方案是只使用一个任意的分隔符,然后在读取它时解析它,这感觉很恶心。如果无法使用多个值,是否有更好的方法?我不想使用太多的cookie,因为那样会很烦人。.NETs多值cookie的工作方式与您在django中使用

我想通过Django设置一个cookie,它有几个不同的值,类似于.NET的属性。看这张照片,我不知道这是否可能。它看起来就像一根绳子,那么还有别的方法吗


我尝试向它传递数组[10,20,30]和字典{'name':'Scott','id':1},但它们只是转换为字符串格式。我目前的解决方案是只使用一个任意的分隔符,然后在读取它时解析它,这感觉很恶心。如果无法使用多个值,是否有更好的方法?我不想使用太多的cookie,因为那样会很烦人。

.NETs多值cookie的工作方式与您在django中使用分隔符的工作方式完全相同。他们只是为你把它抽象出来。你所做的一切都是正确的,我不认为Django有任何具体的方法来“解决”这个问题


我会说你做的是正确的,没有使用多个cookies。通过执行您正在执行的操作来降低网络开销。

.net多值cookie的工作方式与您在django中使用分隔符的工作方式完全相同。他们只是为你把它抽象出来。你所做的一切都是正确的,我不认为Django有任何具体的方法来“解决”这个问题


我会说你做的是正确的,没有使用多个cookies。通过做你正在做的事情来降低头顶上的电线。

Django不支持它。最好的方法是使用任意分隔符分隔值,然后像您前面所说的那样拆分字符串。

Django不支持它。最好的方法是使用任意分隔符分隔值,然后像您已经说过的那样拆分字符串。

如果您要查找更抽象的内容,请尝试使用。我相信它们的工作方式是在cookie中存储一个与数据库记录匹配的id。你可以在里面储存你想要的任何东西。它与您要查找的内容并不完全相同,但如果您不介意少量的数据库开销,它可以工作。

如果您要查找更抽象的内容,请尝试使用。我相信它们的工作方式是在cookie中存储一个与数据库记录匹配的id。你可以在里面储存你想要的任何东西。这与您想要的并不完全相同,但如果您不介意少量的数据库开销,它可能会起作用。

请稍后回答

这将是笨重的,但您总是使用python内置的序列化调用

您可以随时执行以下操作:

import pickle
class MultiCookie():
    def __init__(self,cookie=None,values=None):
        if cookie != None:
            try:
                self.values = pickle.loads(cookie)
            except:
                # assume that it used to just hold a string value
                self.values = cookie
        elif values != None:
            self.values = values
        else:
            self.values = None

    def __str__(self):
        return pickle.dumps(self.values)
然后,您可以获得cookie:

newcookie = MultiCookie(cookie=request.COOKIES.get('multi'))
values_for_cookie = newcookie.values
或设置值:

mylist = [ 1, 2, 3 ]
newcookie = MultiCookie(values=mylist)
request.set_cookie('multi',value=newcookie)
迟到的回答

这将是笨重的,但您总是使用python内置的序列化调用

您可以随时执行以下操作:

import pickle
class MultiCookie():
    def __init__(self,cookie=None,values=None):
        if cookie != None:
            try:
                self.values = pickle.loads(cookie)
            except:
                # assume that it used to just hold a string value
                self.values = cookie
        elif values != None:
            self.values = values
        else:
            self.values = None

    def __str__(self):
        return pickle.dumps(self.values)
然后,您可以获得cookie:

newcookie = MultiCookie(cookie=request.COOKIES.get('multi'))
values_for_cookie = newcookie.values
或设置值:

mylist = [ 1, 2, 3 ]
newcookie = MultiCookie(values=mylist)
request.set_cookie('multi',value=newcookie)