【发布时间】:2010-11-22 07:59:41
【问题描述】:
我有一个使用 CGI 用 python 编写的网站。直到最近,当扩展能力变得很重要时,这一切都很好。
我决定使用 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,解释器只加载这个模块一次,并且只填充一次。我无法读取cookie,因为它的操作系统具有本地机器的环境变量,而不是远程用户。
我确信有办法解决这个问题,但我不确定它是什么。我尝试在 get_username 函数中重新导入 os,但没有骰子 :(.
有什么想法吗?
【问题讨论】:
标签: python cookies mod-python