python - O Django suporta cookies multi-valor? - CoreDump.biz
O Django suporta cookies multi-valor?
Eu gostaria de definir um cookie via Django com que tem vários valores diferentes para ele, semelhante à do .NET HttpCookie.Values propriedade. Olhando para o documentação , não posso dizer se isso é possível. Parece que ele só tem uma corda, por isso existe outra maneira?
Eu tentei passá-lo um array ( [10, 20, 30]) e dicionário ( {'name': 'Scott', 'id': 1}), mas eles só são convertidos ao seu formato string. Minha solução atual é usar apenas um separador arbitrária e, em seguida, analisá-lo quando lê-lo em, que se sente icky. Se vários valores não são possíveis, há uma maneira melhor? Eu prefiro não usar muita cookies, porque isso iria ficar chato.
pythondjangocookies
Publicado 24/09/2008 em 19:09 2008-09-24 19:09
.NETs biscoitos multi-valor funcionam exatamente da mesma forma que o que você está fazendo em Django usando um separador. Eles acabaram abstraída que longe para você. O que você está fazendo é bom e apropriado, e eu não acho que o Django tem nada específico para 'resolver' este problema.
Posso dizer que você está fazendo a coisa certa, em não usar vários cookies. Mantenha a sobrecarga over-the-wire para baixo, fazendo o que você está fazendo.
Respondeu 24/09/2008 em 19:35 2008-09-24 19:35 share
(Resposta atrasada!)
Este será mais volumoso, mas você chama sempre usar python é construído em serialização.
class MultiCookie():
def __init__(self,cookie=None,values=None):
self.values = pickle.loads(cookie)
# assume that it used to just hold a string value
self.values = cookie
elif values != None:
return pickle.dumps(self.values)
Em seguida, você pode obter o cookie:
newcookie = MultiCookie(cookie=request.COOKIES.get('multi'))
values_for_cookie = newcookie.values
Ou definir os valores:
newcookie = MultiCookie(values=mylist)
request.set_cookie('multi',value=newcookie)
Respondeu 05/03/2010 em 00:24 2010-03-05 00:24 share
fonte usuário Jordan Reiter
Se você está procurando algo um pouco mais abstrata, tente usar sessões . Eu acredito que a forma como eles trabalham é armazenando uma identificação no cookie que corresponde a um registro de banco de dados. Você pode armazenar o que quiser nele. Não é exatamente o mesmo que o que você está procurando, mas poderia funcionar se você não se importa uma pequena quantidade de sobrecarga db.
Respondeu 25/09/2008 em 02:44 2008-09-25 02:44 share
O Django não apoiá-lo. A melhor forma seria a de separar os valores com separador arbitrária e em seguida, basta dividir a string, como você já disse.