Как читать куки в скрипте Python при использовании mod_python - PullRequest
0 голосов
/ 22 ноября 2010

У меня есть сайт, который я написал на python, используя CGI.Это было замечательно до самого недавнего времени, когда возможность масштабирования стала важной.

Я решил, потому что это было очень просто, использовать mod_python.Большая часть функциональности моего сайта хранится в модуле python, который я вызываю для отображения различных страниц.Один из сценариев CGI может выглядеть так:

#!/usr/bin/python

import mysite

mysite.init()
mysite.foo_page()
mysite.close()

, а в mysite у меня может быть что-то вроде этого:

def get_username():
     cookie = Cookie.SimpleCookie(os.environ.get("HTTP_COOKIE",""))
     sessionid = cookie['sessionid'].value
     ip = os.environ['REMOTE_ADDR']
     username = select username from sessions where ip = %foo and session = %bar
     return(username)

для получения имени пользователя текущего пользователя.Проблема в том, что это зависит от заполнения os.envrion при импорте os в скрипт (вверху модуля).Поскольку я сейчас использую mod_python, интерпретатор загружает этот модуль только один раз и заполняет его только один раз.Я не могу читать куки, потому что у него есть переменные окружения локального компьютера, а не удаленного пользователя.

Я уверен, что есть способ обойти это, но я не уверен, что это такое.Я попытался повторно импортировать ОС в функцию get_username, но без игры в кости: (.

Есть мысли?

1 Ответ

0 голосов
/ 22 ноября 2010

Какую версию mod_python вы используете?Mod_python 3.x включает отдельный класс Cookie, чтобы упростить эту задачу (см. здесь )

В более ранних версиях IIRC вы можете получать входящие файлы cookie внутри члена headers_inобъект запроса.

...