Flask – Cookie



Cookie 以文字檔案的形式儲存在客戶端的計算機上。其目的是記住和跟蹤與客戶端使用相關的資料,以提供更好的訪客體驗和網站統計資訊。

請求物件包含 Cookie 的屬性。它是客戶端傳送的所有 Cookie 變數及其對應值的字典物件。除此之外,Cookie 還儲存其過期時間、路徑和網站的域名。

在 Flask 中,Cookie 設定在響應物件上。使用make_response()函式從檢視函式的返回值獲取響應物件。之後,使用響應物件的set_cookie()函式儲存 Cookie。

讀取 Cookie 很容易。request.cookies屬性的get()方法用於讀取 Cookie。

在下面的 Flask 應用程式中,當您訪問‘/’ URL 時,會開啟一個簡單的表單。

@app.route('/')
def index():
   return render_template('index.html')

此 HTML 頁面包含一個文字輸入。

<html>
   <body>
      <form action = "/setcookie" method = "POST">
         <p><h3>Enter userID</h3></p>
         <p><input type = 'text' name = 'nm'/></p>
         <p><input type = 'submit' value = 'Login'/></p>
      </form>
   </body>
</html>

表單釋出到‘/setcookie’ URL。關聯的檢視函式設定一個名為userID的 Cookie 並呈現另一個頁面。

@app.route('/setcookie', methods = ['POST', 'GET'])
def setcookie():
   if request.method == 'POST':
   user = request.form['nm']
   
   resp = make_response(render_template('readcookie.html'))
   resp.set_cookie('userID', user)
   
   return resp

‘readcookie.html’包含到另一個檢視函式getcookie()的超連結,該函式讀取並顯示瀏覽器中的 Cookie 值。

@app.route('/getcookie')
def getcookie():
   name = request.cookies.get('userID')
   return '<h1>welcome '+name+'</h1>'

執行應用程式並訪問https://:5000/

ReadCookie HTML

設定 Cookie 的結果如下所示:

Result of Setting Cookie

讀取 Cookie 的輸出如下所示。

Reading Cookie Back
廣告