Redireccionando a URL en Frask

Soy nuevo en Python and Flask y estoy tratando de hacer el equivalente de Response.redirect como en C# , es decir, redirigir a una URL específica. ¿Cómo hago para solucionar 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) 

Related of "Redireccionando a URL en Frask"

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) 

Consulte la documentación en los documentos matraz. El valor predeterminado para el código es 302, por lo que el code=302 se puede omitir o reemplazar por otro código de redirección (uno en 301, 302, 303, 305 y 307).

 #!/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 la API de Flask (v. 0.10):

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 admiten porque no es un redireccionamiento real y 304 porque es la respuesta para una solicitud con una solicitud con encabezados If-Modified-Since definidos.

Nuevo en la versión 0.6 : la ubicación ahora puede ser una cadena Unicode que está codificada usando la función iri_to_uri ().

Parámetros:

  • location : la ubicación a la que se debe redireccionar la respuesta.
  • code – el código de estado de redirección. El valor predeterminado es 302.
  • Response (clase): una clase de respuesta que se usa cuando se crea una instancia de una respuesta. El valor predeterminado es werkzeug.wrappers.Response si no se especifica.

Creo que esta pregunta merece una actualización: simplemente eche un vistazo a los otros enfoques y haga las comparaciones.

Aquí está cómo hacer la redirección (3xx) de una url a otra en Flask (0.12.2):

 #!/usr/bin/env python from flask import Flask, redirect app = Flask(__name__) @app.route("/") def index(): return redirect('/you_were_redirected') @app.route("/you_were_redirected") def redirected(): return "You were redirected. Congrats :)!" if __name__ == "__main__": app.run(host="0.0.0.0",port=8000,debug=True) 

Para otras referencias oficiales, aquí .

 flask.redirect(location, code=302) 

Los documentos se pueden encontrar aquí .

Para esto, simplemente puede usar la función de redirect que está incluida en el flask

 from flask import Flask, redirect app = Flask(__name__) @app.route('/') def hello(): return redirect("www.exampleURL.com") if __name__ == "__main__": app.run() 

Otro consejo útil (como usted es nuevo en el flask), es agregar app.debug = True después de inicializar el objeto del flask, ya que la salida del depurador ayuda mucho mientras se da cuenta de lo que está mal.