2014-06-14 41 views
-1

我正在嘗試在使用Cookie庫設置cookie的python中編寫腳本。我已經寫了下列方法:python中的Cookie

import uuid 
import Cookie 
import sys 
import os 

def send_cookie(key, value, max_age): 
    cookie = Cookie.SimpleCookie() 
    cookie[key]=value 
    cookie[key]['max-age']=max_age 
    print cookie.output() 

問題是,當我把這種方法例如多次,send_cookie( '富',123,1000),send_cookie( 'foo2的',12345,1000)。 我會'假設'這些cookie存儲在我的電腦上。當我打印os.environ ['HTTP_COOKIE']時,我沒有看到我在那裏設置的任何cookie。

回答

0

不,Cookie模塊只能幫助您對cookie的抽象概念建模,並可能生成Set-Cookie標頭。一個附加模塊cookielib可以處理Cookie的集合,但都不會設置HTTP_COOKIE環境標題。

documentation是在這個相當清楚:

Cookie模塊定義用於提取餅乾,一個HTTP狀態管理機制的概念類。它支持簡單的僅字符串的cookie,並提供了一個抽象,讓任何可序列化的數據類型作爲cookie值。

HTTP_COOKIE環境變量是東西CGI服務器將設定基於輸入HTTP請求。您當然可以從Cookie對象中生成這樣的環境變量,但創建此類對象的行爲不會自行影響環境。

如果您實際在CGI腳本中使用此函數,則cookie.output()應該是HTTP標頭的一部分;確保你還沒有向CGI服務器發送雙線分隔符信號,表明你的頭文件已經完成。

+0

但是,當我打印cookie.output(),我的瀏覽器不會存儲該cookie。 – user136638

+0

下次打開腳本時,我的瀏覽器應該將存儲的cookie傳遞到os.environ ['HTTP_COOKIE']? – user136638

+0

@ user136638:除非您將該輸出作爲HTTP響應發送到瀏覽器。 –