當前位置:
首頁 > 最新 > flask中cookie和session介紹

flask中cookie和session介紹

GIF

GIF

今天小婷兒給大家分享的是flask中cookie和session介紹。

flask中cookie和session介紹


flask中cookie和session介紹

在網站中,http請求是無狀態的。也就是說即使第一次和伺服器連接後並且登錄成功後,第二次請求伺服器依然不能知道當前請求是哪個用戶。cookie的出現就是為了解決這個問題,第一次登錄後伺服器返回一些數據(cookie)給瀏覽器,然後瀏覽器保存在本地,當該用戶發送第二次請求的時候,就會自動的把上次請求存儲的cookie數據自動的攜帶給伺服器,伺服器通過瀏覽器攜帶的數據就能判斷當前用戶是哪個了。cookie存儲的數據量有限,不同的瀏覽器有不同的存儲大小,但一般不超過4KB。因此使用cookie只能存儲一些小量的數據。


session和cookie的作用有點類似,都是為了存儲用戶相關的信息。不同的是,cookie是存儲在本地瀏覽器,而session存儲在伺服器。存儲在伺服器的數據會更加的安全,不容易被竊取。但存儲在伺服器也有一定的弊端,就是會佔用伺服器的資源,但現在伺服器已經發展至今,一些session信息還是綽綽有餘的。


web開發發展至今,cookie和session的使用已經出現了一些非常成熟的方案。在如今的市場或者企業里,一般有兩種存儲方式:

1、存儲在服務端:通過cookie存儲一個session_id,然後具體的數據則是保存在session中。如果用戶已經登錄,則伺服器會在cookie中保存一個session_id,下次再次請求的時候,會把該session_id攜帶上來,伺服器根據session_id在session庫中獲取用戶的session數據。就能知道該用戶到底是誰,以及之前保存的一些狀態信息。這種專業術語叫做server side session。

2、將session數據加密,然後存儲在cookie中。這種專業術語叫做client side session。flask採用的就是這種方式,但是也可以替換成其他形式。


flask中使用cookie和session

在Flask中操作cookie,是通過response對象來操作,可以在response返回之前,通過response.set_cookie來設置,這個方法有以下幾個參數需要注意:

key:設置的cookie的key。

value:key對應的value。

max_age:改cookie的過期時間,如果不設置,則瀏覽器關閉後就會自動過期。

expires:過期時間,應該是一個datetime類型。

domain:該cookie在哪個域名中有效。一般設置子域名,比如cms.example.com。

path:該cookie在哪個路徑下有效。

使用:

獲取:request.cookies.get(key, "默認值")

設置:resp.set_cookie(key, value, max_age=整數)

刪除:resp.delete_cookie(key)

Flask中的session是通過from flask import session。然後添加值key和value進去即可。

client side session:Flask中的session機制是將session信息加密,然後存儲在cookie中。專業術語叫做client side session。

server side session:存儲在伺服器,客戶端保存的時session_id(通過cookie完成)

使用:

獲取:session.get(key, "默認值")

設置:

session.permanent = True

session[key] = value

刪除:

指定刪除:session.pop(key, None)

清空所有:session.clear()


DB筆試面試歷史連接

小麥苗課堂培訓認證

DBA寶典小程序


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 DBA寶典 的精彩文章:

在Oracle中,如何定時清理INACTIVE狀態的會話?

TAG:DBA寶典 |