Flask(12)- 操作 Session


前言

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

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

 

功能 list

提供操作 Session 的 4 項功能

頁面路徑 功能
/set 在 Session 中存儲一個名稱為 ‘user’、值為 ‘tom’ 的變量
/get 獲取 Session 中名稱為 ‘user’ 的變量
/del 刪除 Session 中名稱為 ‘user’ 的變量
/clear 清除 Session 中所有的變量

 

項目構成

程序有 2 個源文件構成

源文件 描述
app.py Flask 后端程序,提供操作 Session 的接口
templates/query.html 查詢 Session 中名稱為 user 和 pwd 的變量,並返回給客戶端

 

模板文件 query.html

用戶的數據存儲在 Session 中,服務端程序使用頁面模板 query.html 展示 Session 中的數據

<html>
<head>
    <meta charset='UTF-8'>
    <title>顯示 session 中的變量</title>
</head>

<body>
<h1>顯示 session 中的變量</h1>
<h2>session.get('user') = {{ user }}</h2>
<h2>session.get('pwd') = {{ pwd }}</h2>
</body>

</html>

 

Flask app.py 代碼

引入模塊

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
# author: 小菠蘿測試筆記
# blog:  https://www.cnblogs.com/poloyy/
# time: 2021/7/16 9:47 下午
# file: app.py
"""

from flask import Flask, render_template, session
import os

app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24)
  • Flask 有個配置屬性叫 SECRET_KEY
  • SECRET_KEY 是一個密鑰,Flask 以及相關的擴展 extension 需要進行加密時需要使用這個密鑰
  • 使用 Session 存儲數據時,Flask 在內部需要進行加密處理,所以要配置這個 KEY
  • 這邊用 Python 的 os.random() 生成一個包含 24 個字符的隨機字符串

 

設置 Session

@app.route("/set")
def set():
    session["user"] = "poloyy"
    session["pwd"] = "password"
    return render_template('query.html', user=session.get("user"), pwd=session.get("pwd"))

 

獲取 Session

@app.route("/get")
def get():
    user = session.get("user")
    pwd = session.get("pwd")
    return render_template('query.html', user=user, pwd=pwd)

 

刪除 Session

@app.route("/del")
def del_():
    session.pop("user")
    return render_template('query.html', user=session.get("user"), pwd=session.get("pwd"))

 

清空 Session 全部變量 

@app.route("/clear")
def clear():
    session.clear()
    return render_template('query.html', user=session.get("user"), pwd=session.get("pwd"))

 

瀏覽器的運行效果

設置 Session

 

獲取 Session

 

刪除 Session

 

清空 Session 全部變量 

  

總結

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM