> import Cookie > import time > c = Cookie.SimpleCookie() > c['data'] = "unamepwordwhatever" > c['data']['expires'] = 30 * 24 * 60 * 60 > print c > > Gives an output of: > > "Set-Cookie: data=unamepwordwhatever; expires=Sat, 24-May-2008 > 12:11:36 GMT" >
Hi again. I didn't see your replies until now. Disclaimer: I've never worked with cookies before, I'm just going by the rfc, python docs, and wikipedia. I think the confusion exists because the Cookie module has an unusual definition of cookies. What we call cookies (key + value + attributes), the Cookie module calls a Morsel. What the Cookie module calls a cookie is in fact the collection of Set-Cookie headers that will be sent by the server. So for code like this: c = Cookie.SimpleCookie() c['data1'] = 123 c['data2'] = 456 the server will output 2 cookies like this: Set-Cookie: data1=123 Set-Cookie: data2=456 This is why when you want to set the expiry date for one of the cookies, you need syntax like this: c['data2']['expires'] = 30 * 24 * 60 * 60 Another note: 'expires' is apprantly a legacy attribute for early Netscape browsers. The RFC and python source comments suggest that you use 'Max-Age' instead. I think that the Cookie module author wanted to represent http state as a python dictionary, but chose an unfortunate name for the class. Also, the example page doesn't go into detail about setting attributes. David. -- http://mail.python.org/mailman/listinfo/python-list