Redirecting to URL in Flask Redirecting to URL in Flask python python

Redirecting to URL in Flask


You have to return a redirect:

import osfrom flask import Flask,redirectapp = Flask(__name__)@app.route('/')def hello():    return redirect("http://www.example.com", code=302)if __name__ == '__main__':    # Bind to PORT if defined, otherwise default to 5000.    port = int(os.environ.get('PORT', 5000))    app.run(host='0.0.0.0', port=port)

See the documentation on flask docs. The default value for code is 302 so code=302 can be omitted or replaced by other redirect code (one in 301, 302, 303, 305, and 307).


#!/usr/bin/env python# -*- coding: utf-8 -*-import osfrom flask import Flask, redirect, url_forapp = Flask(__name__)@app.route('/')def hello():    return redirect(url_for('foo'))@app.route('/foo')def foo():    return 'Hello Foo!'if __name__ == '__main__':    # Bind to PORT if defined, otherwise default to 5000.    port = int(os.environ.get('PORT', 5000))    app.run(host='0.0.0.0', port=port)

Take a look at the example in the documentation.


From the Flask API Documentation (v. 2.0.x):

flask.redirect(location, code=302, Response=None)

Returns a response object (a WSGI application) that, if called, redirects the client to the target location. Supported codes are 301, 302, 303, 305, and 307. 300 is not supported because it’s not a real redirect and 304 because it’s the answer for a request with a request with defined If-Modified-Since headers.

New in version 0.6: The location can now be a unicode string that isencoded using the iri_to_uri() function.

Parameters:

  • location – the location the response should redirect to.
  • code – the redirect status code. defaults to 302.
  • Response (class) – a Response class to use when instantiating a response. The default is werkzeug.wrappers.Response if unspecified.