FlaskRedirect

Syntax

  • redirect(location, code, Response)

Parameters

ParameterDetails
locationThe location the response should redirect to.
code(Optional) The redirect status code, 302 by default. Supported codes are 301, 302, 303, 305, and 307.
Response(Optional) A Response class to use when instantiating a response. The default is werkzeug.wrappers.Response if unspecified.

Remarks

The location parameter must be a URL. It can be input raw, such as 'http://www.webpage.com' or it can be built with the url_for() function.

Simple example

from flask import Flask, render_template, redirect, url_for

app = Flask(__name__)

@app.route('/')
def main_page():
    return render_template('main.html')

@app.route('/main')
def go_to_main():
    return redirect(url_for('main_page'))

Passing along data

# ... 
# same as above

@app.route('/welcome/<name>')
def welcome(name):
    return render_template('main.html', name=name)

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        # ...
        # check for valid login, assign username
        if valid:
            return redirect(url_for('main_page', name=username))
        else:
            return redirect(url_for('login_error'))
    else:
        return render_template('login.html')