iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
Modern Web

Willisの後端幼幼班系列 第 20

後端幼幼班Day20 Flask篇 Session

  • 分享至 

  • xImage
  •  

哈囉 ! 大家好呀 ~ 我是Willis,上一篇我們介紹了Cookie,那這篇就要開始介紹Session啦 ~ (→ܫ←)

Session是甚麼?

Server 和 Client 不會一直保持連線狀態,無法取得雙方的狀態,所以使用了 Session,Session 就像是餐廳的號碼牌, Server 可以透過該號碼牌來認定 Client 的身分、是否點過餐、知道 Client 點了什麼東西,給予 Client 餐點。

SECRET_KEY

在使用 Session 前我們需要用 SECRET_KEY 來設定 Session加密的金鑰。

  • 程式碼 app.py
from flask import Flask # 導入模組 Flask
import os # 導入模組 os
app = Flask(__name__)
app.config["DEBUG"] = True
app.config['SECRET_KEY'] = os.urandom(16)  # 設定 Session加密的金鑰


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

設置 Session

session[Name] = (Value)

  • 程式碼 app.py
from flask import Flask, session, render_template # 導入模組 Flask, session, render_template 
import os # 導入模組 os
app = Flask(__name__)
app.config["DEBUG"] = True
app.config['SECRET_KEY'] = os.urandom(16)  # 設定 Session加密的金鑰


@app.route('/session')
def setsession():
    session['My_session'] = 'Willis'  # 製造session
    return "My session"


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

取得Session的值

session.get(Name)

  • 程式碼 app.py
from flask import Flask, session, render_template # 導入模組 Flask, session, render_template
import os # 導入模組 os
app = Flask(__name__)
app.config["DEBUG"] = True
app.config['SECRET_KEY'] = os.urandom(16)  # 設定 Session加密的金鑰


@app.route('/session')
def setsession():
    session['My_session'] = 'Willis'  # 製造session
    return "My session"


@app.route("/get")  # 取得session
def getsession():
    get_session = session.get('My_session')
    return get_session


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

刪除Session

del session[Name]

  • 程式碼 app.py
from flask import Flask, session, render_template  # 導入模組
import os
app = Flask(__name__)
app.config["DEBUG"] = True
app.config['SECRET_KEY'] = os.urandom(16)  # 設定 Session加密的金鑰


@app.route('/session')
def setsession():
    session['My_session'] = 'Willis'  # 製造session
    return "My session"


@app.route("/del")  # 刪除session
def delsession():
    del session['My_session']
    return "Delete session"


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

  • /del 刪除session

session.pop(Name)

  • 程式碼 app.py
from flask import Flask, session, render_template  # 導入模組
import os
app = Flask(__name__)
app.config["DEBUG"] = True
app.config['SECRET_KEY'] = os.urandom(16)  # 設定 Session加密的金鑰


@app.route('/session')
def setsession():
    session['My_session'] = 'Willis'  # 製造session
    return "My session"


@app.route("/del")  # 刪除session
def delsession():
    session.pop('My_session')
    return "Delete session"


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

  • /del 刪除session

session.clear()

  • 程式碼 app.py
from flask import Flask, session, render_template  # 導入模組
import os
app = Flask(__name__)
app.config["DEBUG"] = True
app.config['SECRET_KEY'] = os.urandom(16)  # 設定 Session加密的金鑰


@app.route('/session')
def setsession():
    session['My_session'] = 'Willis'  # 製造session
    return "My session"


@app.route("/del")  # 刪除session
def delsession():
    session.clear()
    return "Delete session"


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

  • /del 刪除session

參考資料

https://iter01.com/194145.html
https://www.maxlist.xyz/2019/06/29/flask-session/

結尾

終於講完了Session,而且文章也寫到第20天了 ! 感覺時間過得真快呢 ! 那接下來的10天我們就一起繼續加油吧 ~ 掰掰ヾ (o ° ω ° O ) ノ゙


上一篇
後端幼幼班Day19 Flask篇 Cookie
下一篇
後端幼幼班Day21 MySQL篇 資料庫介紹與安裝
系列文
Willisの後端幼幼班30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言