У меня есть сайт, который я написал на 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, но без игры в кости: (.
Есть мысли?