
- TurboGears 教程
- TurboGears - 首頁
- TurboGears - 概述
- TurboGears - 環境
- TurboGears - 第一個程式
- TurboGears - 依賴項
- TurboGears - 服務模板
- TurboGears - HTTP 方法
- Genshi 模板語言
- TurboGears - 包含
- TurboGears - JSON 渲染
- TurboGears - URL 層次結構
- TurboGears - Toscawidgets 表單
- TurboGears - 驗證
- TurboGears - 快閃記憶體訊息
- TurboGears - Cookie 和 Session
- TurboGears - 快取
- TurboGears - Sqlalchemy
- TurboGears - 建立模型
- TurboGears - CRUD 操作
- TurboGears - 資料網格
- TurboGears - 分頁
- TurboGears - 管理員訪問
- 授權和身份驗證
- TurboGears - 使用 MongoDB
- TurboGears - 腳手架
- TurboGears - 鉤子
- TurboGears - 編寫擴充套件
- TurboGears - 可插拔應用程式
- TurboGears - RESTful 應用程式
- TurboGears - 部署
- TurboGears 有用資源
- TurboGears - 快速指南
- TurboGears - 有用資源
- TurboGears - 討論
TurboGears – Cookie 和 Session
通常需要儲存與使用者瀏覽器關聯的簡單瀏覽資料。Session 是最常用的技術。Session 代表不需要以更持久的方式(如磁碟檔案或資料庫)儲存的資料。
但是,TurboGears 中的 Session 資料可以由檔案系統、資料庫或雜湊 Cookie 值支援。少量 Session 資料通常儲存在 Cookie 中,但對於大量 Session 資料,使用 MemCache。
MemCache 是一個系統級守護程序。它提供對快取資料的快速訪問,並且具有極強的可擴充套件性。但是,它僅供在安全伺服器上使用,因此必須由系統管理員維護和保護。
Session 管理中的 Beaker
TurboGears 使用 Beaker 進行 Session 管理。Gearbox 快速啟動的專案預設配置為使用雜湊 Cookie 儲存 Session 資料。
每次客戶端連線時,Session 中介軟體(Beaker)都會使用配置檔案中定義的 Cookie 名稱檢查 Cookie。如果找不到 Cookie,它將在瀏覽器中設定。在所有後續訪問中,中介軟體都會找到 Cookie 並使用它。
為了啟用 Session 管理,應透過以下匯入語句將 Session 類合併到專案中:
from tg import session
要在 Session 變數中儲存資料:
session[‘key’] = value session.save()
檢索 Session 變數:
return session[‘key’]
請注意,您需要顯式儲存 Session,以便您的鍵儲存在該 Session 中。
Session 物件的 delete() 方法將擦除所有使用者 Session:
session.delete()
儘管在任何給定的生產環境中刪除所有使用者 Session 並不常見,但您通常會在完成可用性或功能測試後執行此操作以進行清理。
下面是一個簡單的示例來演示 Session。RootController 類有一個 setsession() 方法,它設定一個 Session 變數。
from hello.lib.base import BaseController from tg import expose, session class RootController(BaseController): @expose() def setsession(self): session['user'] = 'MVL' session.save() str = "<b>sessionVariable set to "+session['user'] str = str+"<br><a href = '/getsession'>click here to retrieve</a></b>" return str @expose() def getsession(self): return "<b>value of session variable retrieved " +session['user'] +"</b>"
輸入 https://:8080/setsession

瀏覽器中的連結指向 https://:8080/getsession,它檢索並顯示 Session 變數:
