Home >Backend Development >Python Tutorial >How Can I Pass Variables Between Pages in a Flask Application?

How Can I Pass Variables Between Pages in a Flask Application?

Susan Sarandon
Susan SarandonOriginal
2024-12-08 03:00:11361browse

How Can I Pass Variables Between Pages in a Flask Application?

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn