1. 程式人生 > 實用技巧 >七、session

七、session

1、session的本質

  session是一個SecureCookieSession類(繼承自CallbackDict、SessionMixin)的例項化物件,可以將其當做一個字典,用於儲存使用者的登入資訊。flask的session與django的session不同之處在於,在伺服器端將登入資訊儲存在session裡面,當返回響應的時候,flask將session序列化成了字串,然後設定響應頭的Set-Cookie,用於將序列化後的資訊儲存在客戶端(預設的鍵為session,可以自己設定)。當用戶再次登入時,就會攜帶鍵名為session的Cookie資訊,flask就會在對其就行解析,將其寫入到session中,如果沒有,則建立一個空的session。

2、session的建立流程

由上圖可知,session(SecureCookieSession)和request(Request)被封裝在ctx(RequestContext)中,我們經常使用的session和request

1 from flask import request, session

就是ctx.request和ctx.session。

由於session是一個繼承自字典的類的物件,所以在往session裡面寫入資料可刪除資料時,可以使用字典的方式

# 寫入資料
session["k1"] = "v1"

# 刪除資料
del session["k1"]