Flask的session使用
由于http是無(wú)狀態(tài)保存的協(xié)議,session可以看作不同請(qǐng)求之間保存數(shù)據(jù)的一種機(jī)制。flask的session是基于cookie的會(huì)話(huà)保持。
流程
- 當(dāng)客戶(hù)端進(jìn)行第一次請(qǐng)求的時(shí)候,客戶(hù)端的HTTP request到服務(wù)端,
- 服務(wù)端的視圖函數(shù)創(chuàng)建session
- 請(qǐng)求結(jié)束時(shí),把session的值寫(xiě)入響應(yīng)的cookie中,并返回給瀏覽器,這樣瀏覽器大的cookie中就包含了用戶(hù)的色Esso排名內(nèi)容
- 用戶(hù)再次請(qǐng)求時(shí),客戶(hù)端已經(jīng)在cookie中保存了用戶(hù)的數(shù)據(jù),如用戶(hù)名密碼等信息。
使用
secret
在說(shuō)到session使用就不得不提到secret,secret_key的本質(zhì)就是一個(gè)加密鹽,加密的強(qiáng)度取決于變量值的復(fù)雜度,可以自己定義明文為鹽,也可以使用os.urandom()來(lái)生成,我簡(jiǎn)單地在網(wǎng)上瀏覽了一下,都建議使用os.random(24),當(dāng)然不同程序使用不同的密鑰,不是非要高密度,它會(huì)影響到數(shù)據(jù)在傳輸和存儲(chǔ)時(shí)的復(fù)雜度,由于flask的特性,它把session的key存儲(chǔ)在客戶(hù)端的cookie中,通過(guò)這個(gè)key可以從flask的內(nèi)存中獲取用戶(hù)的session信息,出于安全性考慮,使用secret_key進(jìn)行加密處理。
1,設(shè)置secret_key
import os from flask import Flaskapp = Flask(__name__) app.secret_key(os.urandom(24))2,生成session
session["user"] = request.form.get('username')3,驗(yàn)證session
session.get("user") #/session["user"]也可以轉(zhuǎn)載于:https://www.cnblogs.com/cuiyuanzhang/p/10235208.html
總結(jié)
以上是生活随笔為你收集整理的Flask的session使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python3学习笔记10(迭代器和生成
- 下一篇: BZOJ.4199.[NOI2015]品