Звучит достаточно просто
def create_cookie():
bag = string.ascii_uppercase + string.ascii_lowercase + string.digits
cookie = Cookie.SimpleCookie()
cookie['sessionid'] = ''.join(random.sample(bag,24))
cookie['sessionid']['expires'] = 600
return 'Set-Cookie: ', cookie.output().replace('Set-Cookie: ', '', 1)
cookie.output() — это Set-Cookie: sessionid=YmsrvCMFapXk6wAt4EVKz2uU; expires=Вс, 14 августа 2011 г., 21:48:19 по Гринвичу
headers.append(('Content-type', 'text/html'))
headers.append(('Content-Length', str(output_len)))
headers.append(create_cookie)
Это мой ответ ('200 OK', [('Content-type', 'text/html'), ('Content-Length', '1204'), ('Set-Cookie', 'sessionid=YmsrvCMFapXk6wAt4EVKz2uU; expires = Вс, 14 августа 2011 г., 21:48:19 GMT')], 'html материал')
Вот что я получаю от envirion: HTTP_COOKIE: sessionid=YmsrvCMFapXk6wAt4EVKz2uU
И когда я нажимаю другую ссылку на своей странице, больше нет HTTP_COOKIE. Используя консоль разработчика Chrome, я вижу файл cookie запроса, а заголовок страницы содержит: Cookie:: sessionid=YmsrvCMFapXk6wAt4EVKz2uU
Меня это немного беспокоит. Прежде всего, почему у него есть double :: ? Я попытался использовать «Set-Cookie» вместо «Set-Cookie:» в функции create_cookie. При этом я вообще не получил HTTP_COOKIE из среды.
Итак, после долгих поисков в Интернете и того, что все просто говорят о промежуточном программном обеспечении (не предлагайте мне использовать его, пожалуйста - я делаю это, чтобы изучить wsgi) ... я пришел к выводу, что это пусто.