在 Flask 页面之间传递变量
在 Flask 应用程序中,经常需要在不同页面之间共享数据。这可能包括传递用户的会话信息、表单提交或需要在多个页面上访问的任何其他数据。
传递变量的一种方法是通过 会话。会话是一个服务器端字典,用于存储特定用户的数据。它在请求之间持续存在,使其成为传递不需要对客户端可见的变量的合适选项。
要使用会话,只需使用会话字典设置所需的值。例如:
@app.route('/a') def a(): session['my_var'] = 'my_value' return redirect(url_for('b'))
在目标页面上,您可以使用以下方式从会话中检索变量:
@app.route('/b') def b(): my_var = session.get('my_var', None) return my_var
但是,会话数据的大小有限制,通常约为 4000 字节。如果需要传递大量数据,建议使用数据库或其他数据存储解决方案。
传递变量的另一种方法是通过查询参数。查询参数附加到 URL,使它们对客户端可见。此方法对于传递不需要存储在服务器上的少量数据非常有用。
要使用查询参数,只需使用 url_for 函数将变量附加到 URL:
<a href="{{ url_for('b', my_var='my_value') }}">Send my_value</a>
这将生成 URL:
/b?my_var=my_value
在目标页面上,您可以使用 request.args 检索查询参数object:
@app.route('/b') def b(): my_var = request.args.get('my_var', None)
这两种在 Flask 页面之间传递变量的方法都有其优点和缺点。会话更加安全并且在请求之间持续存在,而查询参数更加轻量并且允许数据对客户端可见。选择最适合您需求的方法。
以上是如何在 Flask 应用程序的页面之间高效地传递变量?的详细内容。更多信息请关注PHP中文网其他相关文章!