Flask的session使用


由於http是無狀態保存的協議,session可以看作不同請求之間保存數據的一種機制。flask的session是基於cookie的會話保持。

流程

  • 當客戶端進行第一次請求的時候,客戶端的HTTP request到服務端,
  • 服務端的視圖函數創建session
  • 請求結束時,把session的值寫入響應的cookie中,並返回給瀏覽器,這樣瀏覽器大的cookie中就包含了用戶的色Esso排名內容
  • 用戶再次請求時,客戶端已經在cookie中保存了用戶的數據,如用戶名密碼等信息。

使用

secret

在說到session使用就不得不提到secret,secret_key的本質就是一個加密鹽,加密的強度取決於變量值的復雜度,可以自己定義明文為鹽,也可以使用os.urandom()來生成,我簡單地在網上瀏覽了一下,都建議使用os.random(24),當然不同程序使用不同的密鑰,不是非要高密度,它會影響到數據在傳輸和存儲時的復雜度,由於flask的特性,它把session的key存儲在客戶端的cookie中,通過這個key可以從flask的內存中獲取用戶的session信息,出於安全性考慮,使用secret_key進行加密處理。

1,設置secret_key

import os
from flask import Flask

app = Flask(__name__)
app.secret_key(os.urandom(24))

2,生成session

session["user"] = request.form.get('username')

3,驗證session

session.get("user")    #/session["user"]也可以


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM