Flask(11)- 操作 Cookie

小菠蘿測試筆記發表於2021-07-15

前言

Cookie 詳解:https://www.cnblogs.com/poloyy/p/12513247.html

這一節來瞧一瞧如何用 Flask 操作 Cookie

 

接下來就是 實戰慄子!!!

 

功能 list

提供操作 Cookie 的 3 項功能

頁面路徑功能
/set_cookie 設定一個名稱為 poloyy、值為 https://www.cnblogs.com/poloyy 的 Cookie
/get_cooike 在服務端獲取名稱為 ‘poloyy’ 的 Cookie,並將其值返回給客戶
/del_cooike 刪除名稱為 ‘poloyy’ 的 Cookie

 

專案構成

程式有 3 個原始檔構成

原始檔描述
app.py Flask 後端程式,提供操作 Cookie 的介面
templates/get_cookie.html 在服務端獲取 Cookie,顯示 Cookie 的值
templates/js_cookie.html 在客戶端通過 Javascript 顯示 Cookie 的值

 

模板檔案 get_cookie.html

瀏覽器訪問網站時,每次都會把 Cookie 傳送給服務端,在服務端獲取 Cookie 並返回給瀏覽器

<html>
<meta charset='UTF-8'>
<title>在服務端獲取 cookie</title>

<body>
<h2>在服務端獲取 cookie: <b>{{cookie}}<b/></h2>
</body>
</html>

 

模板檔案 js_cookie.html

<html>
<meta charset='UTF-8'>
<title>在服務端設定 cookie</title>

<body>
<h2>在服務端設定 cookie</h2>
<h2>在客戶端通過 Javascript 讀取 cookie: <b id='cookie'><b/></h2>
</body>

<script> 
cookie = document.getElementById('cookie'); 
cookie.innerHTML = document.cookie;
</script> 
</html>

document.cookie 是瀏覽器端儲存的 cookie 值,在 id=cookie 中顯示 Cookie 值

 

Flask app.py 程式碼

引入模組

#!/usr/bin/python3
from flask import Flask, request, Response, render_template
app = Flask(__name__)

request 物件詳解:https://www.cnblogs.com/poloyy/p/14995215.html

request.cookies 就是獲取客戶端傳送的 Cookie

 

獲取 Cookie

@app.route("/get_cookies")
def get_cookies():
    cookie  = request.cookies.get('poloyy')
    return render_template('get_cookie.html', cookie = cookie)

 

設定 Cookie

@app.route("/set_cookie")
def set_cookie():
    html = render_template("js_cookie.html")
    response = Response(html)
    response.set_cookie("poloyy", "https://www.cnblogs.com/poloyy")
    return response

 

刪除 Cookie

@app.route("/del_cookie")
def del_cookie():
    html = render_template("js_cookie.html")
    response = Response(html)
    response.delete_cookie("poloyy")
    return response


if __name__ == '__main__':
    app.run(debug=True)

 

瀏覽器的執行效果

設定 cookie

 

獲取 cookie

 

刪除 cookie

 

總結

 

相關文章