Cookie Confusion - How to Set a Cookie
Aaron Watters
aaron.watters at gmail.com
Mon Apr 28 14:37:01 EDT 2008
On Apr 28, 9:42 am, cbh... at gmail.com wrote:
> ....I see the cookie in my HTTP header
> but do not get anything in the cookie text file. I'm working on
> linux.
>
> print "Content-type: text/html"
> cookie = Cookie.SimpleCookie()
> cookie['Test'] = 'abc'
> print cookie
> print
>
> Are there rules about where in the header the set cookie line should
> be?
Hi Christian. I think the cookie can go anywhere in
the header, but I usually put it before the content-type.
If you want to store the cookie to a file,
or even better, to a database of some sort, you have to
do it yourself, the Cookie module doesn't do it for you,
I hope.
# store cookie to /tmp/cookie.txt
file("/tmp/cookie.txt","w").write(str(cookie))
For parsing cookies, I stole and modified this from
the Django source (for use in a cgi script):
===
from Cookie import SimpleCookie
import os
# stolen and modified from Django
def parse_cookie(cookie=None, environ=None):
if cookie is None:
if environ is None:
environ = os.environ
cookie = environ.get('HTTP_COOKIE', '')
if cookie == '':
return {}
c = SimpleCookie()
c.load(cookie)
cookiedict = {}
for key in c.keys():
cookiedict[key] = c.get(key).value
return cookiedict
===
All the best. -- Aaron Watters
===
http://www.xfeedme.com/nucular/pydistro.py/go?FREETEXT=monster
More information about the Python-list
mailing list