iT邦幫忙

2022 iThome 鐵人賽

DAY 19
0
Modern Web

Willisの後端幼幼班系列 第 19

後端幼幼班Day19 Flask篇 Cookie

  • 分享至 

  • xImage
  •  

大家好呀 ~ 我是Willis,今天要介紹的是Cookie喔 ! Σ>―(〃°ω°〃)♡→

Cookie是甚麼?

網站為了辨別使用者身分而儲存在用戶端(Client Side)上的資料,使用Cookie能夠讓使用者在網路瀏覽上更加方便,但在網路隱私的方面來說Cookie危害了使用者的安全。

這裡的Cookie不是餅乾喔 ! ┐(´д`)┌

設置回應

make_response( )

在設置Cookie,我們先來學習如何設置回應。

  • 把 Day16 文章的專案架構拿來使用吧
  • 程式碼 app.py
# 導入模組 Flask, render_template, make_response
from flask import Flask, render_template, make_response

app = Flask(__name__)
app.config["DEBUG"] = True


@app.route('/str')  # 回傳字串
def str():
    response = make_response("Hello World!")
    return response


@app.route('/index')  # 回傳網頁
def index():
    response = make_response(render_template("login.html"))
    return response


if __name__ == '__main__':
    app.run()
  • /str 路徑頁面

  • /index 路徑頁面

設置Cookie

set_cookie

set_cookie 設定

  • key(Cookie 的名稱) (此為必填欄位)
  • value(Cookie 的值)
  • expires(Cookie的有效日期)
  • max_age(與expires類似) (非所有瀏覽器都支持)
  • path(存取該 Cookie 的路徑)
  • domain(存取該 Cookie 的網域)
  • secure(如果設定為:True,Cookie 僅在 Https 時才被傳送)
  • httponly(如果設定為:True,JavaScript 無法取得這個 Cookie)
  • samesite(可設定為:Strict、Lax、None,可以不同程度地限制 Cookies 的傳輸)
  • 程式碼 app.py
from flask import Flask, make_response  # 導入模組 Flask, make_response

app = Flask(__name__)
app.config["DEBUG"] = True


@app.route("/cookie")  # 製造cookie
def setcookie():
    response = make_response('My cookie')
    response.set_cookie(key='My_cookie', value='Hello')
    return response


if __name__ == '__main__':
    app.run()
  • 執行結果

取得Cookie的值

request.cookies.get()

  • 程式碼 app.py
from flask import Flask, make_response, request  # 導入模組 Flask, make_response

app = Flask(__name__)
app.config["DEBUG"] = True


@app.route("/cookie")  # 製造cookie
def setcookie():
    response = make_response('My cookie')
    response.set_cookie(key='My_cookie', value='Hello')
    return response


@app.route("/get")  # 取得cookie
def getcookie():
    get_cookie = request.cookies.get('My_cookie')
    return get_cookie


if __name__ == '__main__':
    app.run()
  • /cookie 製造cookie
  • /get 取得cookie

刪除Cookie

  • 程式碼 app.py
from flask import Flask, make_response, request  # 導入模組 Flask, make_response

app = Flask(__name__)
app.config["DEBUG"] = True


@app.route("/cookie")  # 製造cookie
def setcookie():
    response = make_response('My cookie')
    response.set_cookie(key='My_cookie', value='Hello')
    return response


@app.route('/del')  # 刪除cookie
def delcookie():
    response = make_response('Delete cookies')
    response.set_cookie(key='My_cookie', value='', expires=0)
    return response


if __name__ == '__main__':
    app.run()
  • /cookie 製造cookie

  • /del 刪除cookie

參考資料

https://www.maxlist.xyz/2019/05/11/flask-cookie/

結尾

下一章節我會說Session,今天就到這裡囉 ~ 掰掰~ (๑•̀ω•́)ノ


上一篇
後端幼幼班Day18 Flask篇 網頁錯誤處理
下一篇
後端幼幼班Day20 Flask篇 Session
系列文
Willisの後端幼幼班30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言