七、session
阿新 • • 發佈:2020-07-25
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"]