2012-01-27 31 views
5

Từ CherryPy documentation, có vẻ như chỉ có một vị trí cookie. Đây là mã ví dụ của tôiLàm cách nào để tôi đặt nhiều cookie với CherryPy

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

Tôi muốn đặt nhiều cookie. Tôi đang suy nghĩ theo những dòng này, nhưng tất nhiên điều này sẽ chỉ ghi đè cài đặt đầu tiê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 

Làm cách nào để đặt nhiều cookie với CherryPy?

Trả lời

5

Tôi nghĩ khóa đầu tiên trong cookie phải tương ứng với tên của cookie, trong đó các phím bổ sung sẽ tương ứng với thuộc tính của cookie đó. Do đó, thay vì sử dụng 'name' làm khóa cho cookie của bạn, bạn nên sử dụng một số tên duy nhất.

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 

Điều đó có hiệu quả không?

Chỉnh sửa: Rất tiếc, mỗi morsel có bộ thuộc tính được xác định trước, nơi tôi đã xác định thuộc tính của riêng mình ('shape''count'). Nên được cố định ngay bây giờ.

+0

Không, chỉ một cookie được đặt. Trong trường hợp này, chỉ 'cookie2'. Không tìm thấy 'cookie1'. – Kit

+0

Rất tiếc, xin lỗi. Tất cả đều tốt. Tôi đã thử nghiệm trên một http không an toàn và tôi đặt cookie đầu tiên của mình thành 'an toàn' :) – Kit

+0

Hmm, OK. Theo [trang này] (http://blog.eddsn.com/2010/05/how-to-use-cookies-with-cherrypy/), bạn cần phải gửi ''max-age'' hoặc'' hết hạn ' 'cho mỗi cookie là tốt. Nếu điều đó không hiệu quả, tôi e rằng tôi không có ý tưởng. : / – aganders3

Các vấn đề liên quan