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 默认将会话数据存储在服务器端的内存中,也可以配置为存储在数据库或其他存储方式中,以实现持久化存储。