一、视频教程
12_Flask会话技术
12 Flask会话技术,通过本节课程的学习,你将学会将加密的session对象数据存储到cookie中、获取存储在cookie中的session对象数据、生成随机密钥等。《Flask快速入门教程》,人人都能学,小白看得懂学得会,跟我学编程,免费领取配套学习资料。
二、初始代码
Ctrl + C 拷贝 02-start-params,粘贴到 flask-study 目录,然后命名为 09-sessions-data
三、会话(Sessions)
Flask 使用客户端会话来存储用户信息,以便在用户浏览应用时记住他们的状态。会话数据存储在客户端的 cookie 中,并在服务器端进行签名和加密。
@app.route('/set_session/<username>')
def set_session(username):
session['username'] = username
return f'Session set for {username}'
将Session对象存储Cookie时,报错提示:使用会话之前必须设置一个密钥
设置密钥:secret_key
# 设置密钥
app.secret_key = 'your_secret_key_here'
将加密的Session对象存储到Cookie中
获取存储在Cookie中的Session对象数据:
@app.route('/get_session')
def get_session():
username = session.get('username')
return f'Hello, {username}!' if username else 'No session data'
四、生成随机密钥
使用 Python 内置的 secrets 模块生成一个强随机密钥。
import secrets
# 生成随机密钥
app.secret_key = secrets.token_hex()
每次调用设置Session的方法时,经过加密后的Session对象数据保存到Cookie都是不一样的
但是获取存储在Cookie中Session对象的数据都是一样的