首頁 >後端開發 >Python教學 >web.py cookie使用之cookie設定與獲取

web.py cookie使用之cookie設定與獲取

高洛峰
高洛峰原創
2016-10-17 14:42:322169瀏覽

上一篇文章說到了web.py初探之第一個頁面hello word,下面我們繼續深入web.py編程,來說一下web.py的cookie設定。


cookie相信學過web程式設計的人並不陌生,它在web程式設計中扮演著非常重要的角色。使用者登入、驗證碼、session(基於cookie)、語言選擇器、識別等等都會有cookie的身影。那麼怎麼樣在web.py中設定cookie呢?


其實在web.py中設定cookie非常簡單,web.py早就為我們想到了這一點,提供了一個非常簡單有用的函數:

setcookie(name, value, expires="", domain=None, secure=False)

  

(string) - Cookie的名稱,由瀏覽器儲存並傳送至伺服器。

value (string) -Cookie的值,與Cookie的名稱相對應。

expires (int) - Cookie的過期時間,這是一個可選參數,它決定cookie有效時間是多久。以秒為單位。它必須是一個整數,而絕不能是字串。可選參數,不寫該參數則預設永久有效。

domain (string) - Cookie的有效域-在該域內cookie才是有效的。一般情況下,要在某站點內可用,該參數值該寫做站點的域(例如.webpy.org),而不是站主的主機名(如wiki.webpy.org),可選參數

secure (bool)- 若為True,要求該Cookie只能透過HTTPS傳輸。選用參數


例如:

#设置website的值为www.pythontab.com,有效期60秒
web.setcookie("website", "www.pythontab.com", 60)

   

範例


,

用web.

用GET方式呼叫上面的類別將設定一個名為age,預設值是25的cookie(實際上,預設值25是在web.input中賦予i.age的,從而間接賦予cookie,而不是在setcookie函數中直接賦予cookie的) 。這個cookie將在一小時後(即3600秒)過期。


web.setcookie()的第三個參數-"expires"是一個可選參數,它用來設定cookie過期的時間。如果是負數,cookie將立刻過期。如果是正數,就表示cookie的有效時間是多久,以秒為單位。若該參數為空,cookie就永不過期。


取得Cookies


概述

取得Cookie的數值有很多方法,它們的差異就在於找不到cookie時如何處理。


方法1(如果找不到cookie,就返回None):

透過get方法取得

class CookieSet:
    def GET(self):
        i = web.input(age='25')
        web.setcookie('age', i.age, 3600)
        return "Age set in your cookie"

   

):

#通过设置的cookie的名字获取cookie,例如website
#web.cookies().get("website") 
web.cookies().get(cookieName)

   


方法3(如果找不到cookie,可以設定預設值來避免拋出異常):

#先把cookie对象赋值给一个变量,然后通过cookie的名字获得
#例如:foo.website
foo = web.cookies()
foo.cookieName

ookie  

可以這樣做:

#该方法最大的特点就是可以设置cookie的默认值
foo = web.cookies(cookieName=defaultValue)
#如果不存在该cookieName,就会返回设置的默认cookie
foo.cookieName


class CookieGet:
    def GET(self):
        try:
             return "Your website name is: " + web.cookies().website
        except:
             #抛出异常处理
             return "Cookie 不存在."

   


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn