1. 程式人生 > >Flask入門(四)~cookie和session的簡單使用

Flask入門(四)~cookie和session的簡單使用

Cookie
Cookie:指某些網站為了辨別使用者身份、進行會話跟蹤而儲存在使用者本地的資料(通常經過加密)。
複數形式Cookies。
Cookie最早是網景公司的前僱員Lou Montulli在1993年3月的發明。
Cookie是由伺服器端生成,傳送給客戶端瀏覽器,瀏覽器會將Cookie的key/value儲存,下次請求同一網站時就傳送該Cookie給伺服器(前提是瀏覽器設定為啟用cookie)。
Cookie的key/value可以由伺服器端自己定義。

應用:
最典型的應用是判定註冊使用者是否已經登入網站,使用者可能會得到提示,是否在下一次進入此網站時保留使用者資訊以便簡化登入手續,這些都是Cookie的功用。
網站的廣告推送,經常遇到訪問某個網站時,會彈出小視窗,展示我們曾經在購物網站上看過的商品資訊。
購物車,使用者可能會在一段時間內在同一家網站的不同頁面中選擇不同的商品,這些資訊都會寫入Cookie,以便在最後付款時提取資訊。
提示:

Cookie是儲存在瀏覽器中的一段純文字資訊,建議不要儲存敏感資訊如密碼,因為電腦上的瀏覽器可能被其它人使用
Cookie基於域名安全,不同域名的Cookie是不能互相訪問的
如訪問itcast.cn時向瀏覽器中寫了Cookie資訊,使用同一瀏覽器訪問baidu.com時,無法訪問到itcast.cn寫的Cookie資訊
瀏覽器的同源策略
當瀏覽器請求某網站時,會將本網站下所有Cookie資訊提交給伺服器,所以在request中可以讀取Cookie資訊

session:請求上下文物件,用於處理http請求中的一些資料內容
對於敏感、重要的資訊,建議要儲存在伺服器端,不能儲存在瀏覽器中,如使用者名稱、餘額、等級、驗證碼等資訊
在伺服器端進行狀態保持的方案就是Session
Session依賴於Cookie

上面簡單瞭解了cookie和session的簡單定義與作用,我們來用現實來舉個例子。大家都在用淘寶吧!購物車大家都用過吧,我們購物車裡有我們想要買的東西 我們下次登陸的時候購物車裡的資料還在購物車裡,這是不是說明了我們之前在購物車裡的資料被儲存到了一個地方,而我們想要看到這些資料必須登陸所對應的淘寶賬戶,購物車就是一個簡單的cookie,我們每次關閉瀏覽器下次開啟時需要重新登陸,而我們登陸淘寶賬戶就是一個簡單的session。

cookie對應的是 client(客戶端)

session對應的是 server(服務端)

下面我們來看看具體如果簡單操作:
cookie的儲存,呼叫,刪除

# -*- encoding: utf-8 -*-
#cookie相關操作,依賴於make_response庫,呼叫cookie依賴於與request模組
from flask import Flask,make_response,request


#建立物件
app=Flask(__name__)


#從配置檔案中載入位置
app.config.from_pyfile('config.ini')

@app.route('/')
def index():
return '這裡是首頁'

存cookie的方法

@app.route('/setcookie')
def set_cookie():
resp=make_response('儲存cookie')
#使用set_cookie方法儲存key_value形式的資料
resp.set_cookie('productname','筆記本')
return resp

呼叫cookie的方法

@app.route('/getcookie')
def get_cookie():
#通過requests模組的cookies屬性的get方法,指定key來呼叫value
resp=request.cookies.get('productname')
return resp

刪除cookie的方法

@app.route('/delcookie')
def del_cookie():
#通過make_response物件內建的delete_cookie方法來指定key來刪除value
resp=make_response('刪除cookie')
resp.delete_cookie('productname')
return resp

session的儲存,呼叫,刪除

# -*- encoding: utf-8 -*-
#session是依賴於flask的session模組
#如果想要使用session模組,在配置裡必須定義sessionkey
from flask import Flask,session

#建立物件
app=Flask(__name__)

#從配置檔案里加載配置
app.config.from_pyfile('config.ini')

@app.route('/')
def inndex():
return "我是session的首頁"

儲存session的方法

@app.route('/set_session')
def set_session():
#通過直接使用session對內容賦值
session['username']='你好'
return '儲存session成功'

呼叫session的方法

@app.route('/get_session')
def get_session():
#通過session直接對內容進行呼叫
se=session['username']
return se

刪除session的方法

@app.route('/del_session')
def del_session():
#通過session的pop方法來指定key來刪除value
session.pop('username')
return '刪除成功'

以上就是cookie和session的幾個簡單的儲存,呼叫和刪除。

老規矩一句喜歡的句子送給大家:
真正的人生,只有在經過艱難卓絕的鬥爭之後才能實現