Redirigir a URL en Flask
Estoy intentando hacer el equivalente Response.redirect
a C#, es decir, redirigir a una URL específica. ¿Cómo hago esto?
Aquí está mi código:
import os
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello World!'
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)
Tienes que devolver una redirección:
import os
from flask import Flask,redirect
app = 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)
El valor predeterminado para el código es 302, por lo que code=302
se puede omitir o reemplazar por otro código de redireccionamiento (uno en 301, 302, 303, 305 y 307).
Consulte la documentación sobre flask docs.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from flask import Flask, redirect, url_for
app = 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)
Eche un vistazo al ejemplo en la documentación .
De la documentación de Flask API (v. 2.0.x):
matraz. redireccionar (
location
,code=302
,Response=None
)Devuelve un objeto de respuesta (una aplicación WSGI) que, si se llama, redirige al cliente a la ubicación de destino. Los códigos admitidos son 301, 302, 303, 305 y 307. 300 no se admite porque no es una redirección real y 304 porque es la respuesta a una solicitud con encabezados If-Modified-Since definidos.
Nuevo en la versión 0.6 : la ubicación ahora puede ser una cadena Unicode codificada usando la función iri_to_uri().
Parámetros:
location
– la ubicación a la que debe redirigir la respuesta.code
– el código de estado de redirección. El valor predeterminado es 302.Response
(clase): una clase de respuesta que se utiliza al crear una instancia de una respuesta. El valor predeterminado es werkzeug.wrappers.Response si no se especifica.