出现这个问题通常是因为在重定向页面之后,会话已经结束,无法再发送会话。解决这个问题的方法是在重定向页面之前发送会话。
以下是一个示例代码,演示如何在重定向页面之前发送会话:
from flask import Flask, redirect, session
app = Flask(__name__)
app.secret_key = 'your_secret_key'
@app.route('/')
def index():
session['username'] = 'John' # 在重定向之前发送会话
return redirect('/redirected')
@app.route('/redirected')
def redirected():
username = session.get('username')
if username:
return f'Hello, {username}!'
else:
return 'Session expired.'
if __name__ == '__main__':
app.run()
在上面的代码中,我们在访问根路由 /
时,将会话中的 username
设置为 'John'
,然后执行重定向到 /redirected
路由。在 /redirected
路由中,我们检查会话中是否存在 username
,如果存在则返回欢迎消息,否则返回会话已过期的消息。
请注意,为了使用会话功能,我们需要在 Flask 应用中设置一个密钥(app.secret_key
),这个密钥用于加密会话数据。
使用上述代码,当访问根路由时,会将 username
设置为 'John'
,然后重定向到 /redirected
路由,在重定向页面中可以正确显示欢迎消息。
上一篇:不能在值中使用首字母大写