Passing Variables Between Flask Pages
In Flask, passing variables between pages can be achieved through various methods, including sessions, query parameters, and view args.
Sessions
Sessions provide a straightforward way to store Python values for later retrieval. They behave like a persistent dictionary that survives multiple requests. To use sessions, simply assign a variable to the 'session' dictionary:
@app.route('/a') def a(): session['my_var'] = 'my_value' return redirect(url_for('b'))
In the subsequent page, the value can be accessed as follows:
@app.route('/b') def b(): my_var = session.get('my_var', None) return my_var
Query Parameters
Query parameters allow you to pass data from a template URL directly into the page handler. This is useful for passing small amounts of data that need not be retained for subsequent requests. To use query parameters, append the parameter name and value to the URL in the template:
<a href="{{ url_for('b', my_var='my_value') }}">Send my_value</a>
This will produce a URL like /b?my_var=my_value, which can be accessed in the page handler as follows:
@app.route('/b') def b(): my_var = request.args.get('my_var', None)
View Args
View args provide a way to pass data from the URL directly into the view function. This is similar to query parameters, but the data is not exposed in the URL. To use view args, annotate the route function with the expected argument types:
@app.route('/b/<my_var>') def b(my_var): # Use 'my_var' in your view function
Note that view args cannot be used for passing arbitrary data, as they are type-annotated.
The above is the detailed content of How Can I Pass Variables Between Pages in a Flask Application?. For more information, please follow other related articles on the PHP Chinese website!