flask框架中的cookie和session有什么用-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

在珠海等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需策劃設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),營銷型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,珠海網(wǎng)站建設(shè)費(fèi)用合理。

小編給大家分享一下flask框架中的cookie和session有什么用,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

文章介紹了flask框架中的cookie和session。Session是在服務(wù)器端保存的一個(gè)數(shù)據(jù)結(jié)構(gòu),用來跟蹤用戶的狀態(tài),這個(gè)數(shù)據(jù)可以保存在集群、數(shù)據(jù)庫、文件中。Cookie是客戶端保存用戶信息的一種機(jī)制,用來記錄用戶的一些信息,也是實(shí)現(xiàn)Session的一種方式。

WEB -> cookie & session

由于HTTP協(xié)議是無狀態(tài)的協(xié)議,所以服務(wù)端需要記錄用戶的狀態(tài)時(shí),就需要用某種機(jī)制來識(shí)具體的用戶,這個(gè)機(jī)制就是Session.典型的場景比如購物車,當(dāng)你點(diǎn)擊下單按鈕時(shí),由于HTTP協(xié)議無狀態(tài),所以并不知道是哪個(gè)用戶操作的,所以服務(wù)端要為特定的用戶創(chuàng)建了特定的Session,用用于標(biāo)識(shí)這個(gè)用戶,并且跟蹤用戶,這樣才知道購物車?yán)锩嬗袔妆緯_@個(gè)Session是保存在服務(wù)端的,有一個(gè)唯一標(biāo)識(shí)。

服務(wù)端如何識(shí)別特定的客戶?這個(gè)時(shí)候Cookie就登場了。每次HTTP請求的時(shí)候,客戶端都會(huì)發(fā)送相應(yīng)的Cookie信息到服務(wù)端。實(shí)際上大多數(shù)的應(yīng)用都是用 Cookie 來實(shí)現(xiàn)Session跟蹤的,第一次創(chuàng)建Session的時(shí)候,服務(wù)端會(huì)在HTTP協(xié)議中告訴客戶端,需要在 Cookie 里面記錄一個(gè)Session ID,以后每次請求把這個(gè)會(huì)話ID發(fā)送到服務(wù)器,我就知道你是誰了。

Cookie其實(shí)還可以用在一些方便用戶的場景下,設(shè)想你某次登陸過一個(gè)網(wǎng)站,下次登錄的時(shí)候不想再次輸入賬號(hào)了,怎么辦?這個(gè)信息可以寫到Cookie里面,訪問網(wǎng)站的時(shí)候,網(wǎng)站頁面的腳本可以讀取這個(gè)信息,就自動(dòng)幫你把用戶名給填了,能夠方便一下用戶。這也是Cookie名稱的由來,給用戶的一點(diǎn)甜頭。

flask中的session和cookie

   flask中的session機(jī)制是將敏感數(shù)據(jù)加密后放入session,然后將session存入cookie,下次請求時(shí),直接從瀏覽器發(fā)過來的cookie中獲取session,再從中獲取數(shù)據(jù)進(jìn)行解密

   這樣操作更節(jié)省服務(wù)開銷,因?yàn)閿?shù)據(jù)均存儲(chǔ)到客戶端

   大家可能會(huì)擔(dān)心這種做法的安全性,因?yàn)閿?shù)據(jù)全部存儲(chǔ)在本地瀏覽器,很容易被盜取,但是安全性總是相對的,而且flask里面對session也有自己的特殊加密算法,所以也不用太過于在意安全方面的問題

Session操作

1.使用sessiom需要先導(dǎo)入session

from flask import session

2.SECRET_KEY

     一定記得要設(shè)置SECRET_KEY,用于加密數(shù)據(jù),并且如果每次啟動(dòng)服務(wù)器你的秘鑰都在變化的話就不能再用之前的SECRET_KEY進(jìn)行解密了,我們此處就可以將它設(shè)置成固定值,對于配置文件里面變量的設(shè)置,前文講過,如果數(shù)據(jù)量比較多就單獨(dú)在config.py里面集成,但是如果只是很微量的幾條設(shè)置,那么就可以在主文件里簡單進(jìn)行指令設(shè)置即可,類似這里的:

#生成隨機(jī)的24位字符串
app.config['SECRET_KEY'] = os.urandom(24)

3.session值添加

因?yàn)閟ession和cookie都是鍵值對形式的字典,所以直接用字典方法添加就可以了

session['username'] = 'user1'

4.session值刪除

#1.單條刪除
session.pop('username')
del session['username']
#2. 全部清除
session.clear()

5.session值獲取

session.get('username')
session['username']

6.設(shè)置過期時(shí)間(如果不設(shè)置,默認(rèn)瀏覽器退出即自動(dòng)結(jié)束)

#在config.py中配置session參數(shù)PERMANENT_SESSION_LIFETIME,這個(gè)值的數(shù)據(jù)類型是datetime.timedelay類型
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7) 
session.permanent = True  #默認(rèn)為31天

看完了這篇文章,相信你對flask框架中的cookie和session有什么用有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)頁名稱:flask框架中的cookie和session有什么用-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://muchs.cn/article10/dhcgdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊企業(yè)網(wǎng)站制作、響應(yīng)式網(wǎng)站、靜態(tài)網(wǎng)站外貿(mào)網(wǎng)站建設(shè)、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管