2010-11-21 82 views
0

我有一個網站,我使用CGI在python中編寫。直到最近,這種情況都很好,當時規模的能力變得重要。如何在使用mod_python時讀取python腳本中的cookie

我決定,因爲它非常簡單,使用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導入到腳本中時(位於模塊的頂部)os.envrion將被填充。因爲我現在使用mod_python,所以解釋器只加載一次該模塊,並且只填充一次。我無法讀取cookie,因爲它具有本地機器的環境變量,而不是遠程用戶。

我確信有一種解決方法,但我不確定它是什麼。我試圖mod_python的版本是否使用的是在get_username功能重新導入操作系統,但沒有骰子:(。

有什麼想法?

回答

0

?mod_python的3.x中包括一個獨立的Cookie類來簡化這個過程(見here

在早期版本IIRC你可以得到傳入餅乾請求對象的headers_in元件內部

+0

req.headers_in [「曲奇」] - 是的,這是它。謝謝! – Ryan 2010-11-22 00:14:21

相關問題