2012-01-27 12 views
5

CherryPy documentationからは、Cookieスロットが1つしかないようです。ここに私のコード例がありますCherryPyで複数のCookieを設定するには

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

私は複数のクッキーを設定したいと思います。私はこれらの行に沿って考えていますが、もちろんこれは最初の設定を上書きします。

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 

CherryPyで複数のCookieを設定するにはどうすればよいですか?

答えて

5

cookieの最初のキーは、追加のキーがそのクッキーの属性に対応するクッキーの名前に対応する必要があります。したがって、'name'をクッキーのキーとして使用する代わりに、固有の名前を使用する必要があります。

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 

これは機能しますか?

編集:おっと、morselには、定義済みのプロパティセットがあります。ここで自分自身('shape''count')を定義しています。今すぐ修正する必要があります。

+0

いいえ、1つのCookieのみが設定されます。この場合、 'cookie2'だけです。 'cookie1'はどこにもありません。 – Kit

+0

申し訳ありません大丈夫だよー。私は非セキュアhttpでテストしていました。私は最初のクッキーを 'secure'に設定しました:) – Kit

+0

Hmm、OK。 [このページ](http://blog.eddsn.com/2010/05/how-to-use-cookies-with-cherrypy/)によれば、あなたは '' max-age''または '' expires ''を送る必要があります。 'もそれぞれのクッキーのために。それがうまくいかなければ、私はアイデアがないのではないかと心配しています。 :/ – aganders3

関連する問題