簡體   English   中英

使用mod_python時如何在python腳本中讀取cookie

[英]How to read cookies in a python script when using mod_python

我有一個使用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導入腳本時(在模塊頂部)填充os.envrion。 因為我現在使用的是mod_python,所以解釋器僅加載一次該模塊,並且僅填充一次。 我無法讀取cookie,因為它的操作系統具有本地計算機的環境變量,而不是遠程用戶的環境變量。

我敢肯定有辦法解決這個問題,但是我不確定這是什么。 我嘗試在get_username函數中重新導入os,但沒有骰子:(。

有什么想法嗎?

您正在使用哪個版本的mod_python? Mod_python 3.x包含一個單獨的Cookie類,以使此操作更容易(請參閱此處

在較早版本的IIRC中,您可以在請求對象的headers_in成員內部獲取傳入的cookie。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM