Flask Session 是 Flask 框架提供的一個擴展,用于在 Web 應用中管理用戶會話數據。它可以用于存儲和訪問用戶的會話信息,如登錄狀態、購物車內容等。
使用 Flask Session 擴展的步驟如下:
安裝 Flask Session 擴展:可以通過 pip 安裝,執行命令 pip install flask-session
。
在 Flask 應用中導入擴展:在應用的主文件中導入 Flask Session 擴展,如 from flask_session import Session
。
配置 Flask Session:在 Flask 應用的配置中添加相關配置,如指定 session 存儲方式、加密密鑰等。例如:
app.config['SESSION_TYPE'] = 'redis' # session 存儲方式為 Redis
app.config['SESSION_REDIS'] = redis.from_url('redis://localhost:6379') # Redis 服務器配置
app.config['SECRET_KEY'] = 'your_secret_key' # 加密密鑰
初始化 Flask Session:在應用實例上初始化 Flask Session,如 Session(app)
。
使用 Flask Session:在視圖函數中可以使用 session
對象來存儲和獲取用戶會話數據。例如:
from flask import session
@app.route('/login', methods=['POST'])
def login():
username = request.form['username']
password = request.form['password']
# 驗證用戶名和密碼...
if valid_credentials(username, password):
session['logged_in'] = True
session['username'] = username
return redirect(url_for('dashboard'))
else:
return 'Invalid credentials', 401
@app.route('/dashboard')
def dashboard():
if session.get('logged_in'):
# 用戶已登錄,顯示用戶信息
username = session.get('username')
return f'Welcome, {username}!'
else:
# 用戶未登錄,跳轉到登錄頁面
return redirect(url_for('login'))
以上是 Flask Session 的基本用法,它可以方便地管理用戶會話數據,并通過 session 對象在視圖函數中存儲和獲取數據。需要注意的是,Flask Session 默認將會話數據存儲在服務器端的內存中,也可以配置為存儲在數據庫或其他存儲方式中,以實現持久化存儲。