2012-01-27 12 views
5

De CherryPy documentation, parece haber solo una ranura para cookies. Aquí está mi código de ejemploCómo configuro varias cookies con CherryPy

def sendCookie(self): 
    cookie = cherrypy.response.cookie 
    cookie['name'] = 'Chips Ahoy!' 
    return 'Cookie is now in your hands.' 
sendCookie.exposed = True 

Quiero establecer varias cookies. Estoy pensando en esta línea, pero por supuesto esto solo sobrescribirá la primera configuración.

def sendCookie(self): 
    cookie = cherrypy.response.cookie 
    cookie2 = cherrypy.response.cookie 
    cookie['name'] = 'Chips Ahoy!' 
    cookie2['name'] = 'Chocolate Chips' 
    return 'Cookie is now in your hands.' 
sendCookie.exposed = True 

¿Cómo configuro varias cookies con CherryPy?

Respuesta

5

Creo que la primera clave en cookie debe corresponder al nombre de la cookie, donde las claves adicionales corresponderían a los atributos de esa cookie. Por lo tanto, en lugar de usar 'name' como la clave para sus cookies, debe usar algún nombre único.

def sendCookie(self): 
    cookies = cherrypy.response.cookie 

    cookies['cookie1'] = 'Chips Ahoy!' 
    cookies['cookie1']['path'] = '/the/red/bag/' 
    cookies['cookie1']['comment'] = 'round' 

    cookies['cookie2'] = 'Chocolate Chips' 
    cookies['cookie2']['path'] = '/the/yellow/bag/' 
    cookies['cookie2']['comment'] = 'thousands' 

    return 'Cookies are now in your hands.' 
setCookie.exposed = True 

¿Eso funciona?

Editar: Vaya, cada morsel tiene un conjunto predefinido de propiedades, donde estaba definiendo el mío ('shape' y 'count'). Debería ser arreglado ahora.

+0

No, solo se establece una cookie. En este caso, solo 'cookie2'. 'cookie1' no se encuentra por ningún lado. – Kit

+0

Vaya, disculpa. Está todo bien. Estuve probando en un http no seguro y configuré mi primera cookie para que sea 'segura' :) – Kit

+0

Hmm, OK. De acuerdo con [esta página] (http://blog.eddsn.com/2010/05/how-to-use-cookies-with-cherrypy/) debe enviar ''max-age'' o'' expires ' 'para cada cookie también. Si eso no funciona, me temo que me he quedado sin ideas. : / – aganders3

Cuestiones relacionadas