Use la función Flask redirect() con parámetros

Haider Ali 15 febrero 2024
Use la función Flask redirect() con parámetros

Aquí, discutiremos la función redirect() de Flask. ¿Cuál es su parámetro, cómo se usa y qué se necesita para ejecutarlo? Entonces, comencemos a aprender sobre esto.

Use la función Flask redirect() con parámetros

redirect() es una función o utilidad de Flask que se usa explícitamente para que los usuarios redirijan a una URL específica y luego asigne un código de estado, conocido como Error. Error y redirect() van juntos, pero no los analizaremos en esta guía.

La redirección se produce a la ubicación de destino y se devuelve un objeto de respuesta con el código de estado cuando se llama a esta función.

Se genera un código HTTP cuando un sitio web recibe una solicitud y responde con un código de tres dígitos después de procesarla.

Veamos un ejemplo para comprender mejor el funcionamiento de la función redirect(). Aquí, mostramos un fragmento de código para una explicación fácil; el código completo se proporcionará al final de esta guía.

@app.route("/")
def index():  # An index page will be created where a form will be shown and tells the user to enter a name.
    return """<form action="/goto" method="POST">
            <label>Enter Your Name</label>
            <input name="username" required>
            <input type="submit" value="Submit">
        </form>"""


@app.route("/goto", methods=["POST"])
def redirector():  # a redirector function created
    username = request.form.get("username")  # this requests the name
    return redirect(
        url_for("user", name=username)
    )  # this is the redirect function being implemented.

Veamos las funciones del código, index y redirector.

La función index() se crea con un propósito, que es crear un formulario. Usando el formulario, podemos ingresar cualquier nombre que se usará como URL para el nuevo sitio web.

La función redirector() incluye dos partes: el nombre de usuario y la función redireccionar. El nombre de usuario aquí se utiliza para solicitar un nombre para el formulario; el ingresado aquí está vinculado a la función index() ya que el formulario se crea allí.

La segunda parte, redirect(), redirigirá al sitio web mencionado en sus parámetros. En este caso, el sitio web se crea utilizando la función url_for().

La función url_for() se usa aquí para crear una URL para que la redirijamos. No estamos utilizando ninguna URL creada oficialmente en este ejemplo; en cambio, estamos usando nuestras propias URL.

Varios argumentos de palabras clave representan variables en la regla de URL, siendo el primer argumento el nombre de la función. Como parámetros de consulta, se agregan URL con variables desconocidas.

Ahora, entendamos este ejemplo mirando la salida. En este ejemplo, hemos creado una página índice donde el sistema le pide al usuario que ingrese un nombre para que lo redirija a esa página.

Flask Redirigir con parámetros - Formulario

Aquí, ingresaremos cualquier nombre y lo redirigirá a una página creada con ese nombre. Por ejemplo, escribimos el nombre Aria.

Flask Redirigir con parámetros - Página redirigida

Como puede ver, hemos sido redirigidos con éxito a una página llamada Aria.

Ahora, veamos otro ejemplo que nos redirigirá a google.com cuando se le solicite.

@app.route("/goto1")  # \goto1 will be used as a keyword to redirect.
def redirector_1():
    return redirect("https://www.google.com")  # will redirect to google

Debemos teclear la URL \goto1 para este ejemplo. Eso es todo lo que tendríamos que hacer para ser redirigidos a google.com.

Aquí se explica cómo escribir la URL.

The http address provided by the system/goto1

http://127.0.0.1:5000/goto1 #accoridng to example

El código completo a continuación incluye las dos formas en que se usa la función redireccionar.

from flask import Flask, request, redirect, url_for

app = Flask(__name__)


@app.route("/")
def index():
    return """<form action="/goto" method="POST">
            <label>Enter Your Name</label>
            <input name="username" required>
            <input type="submit" value="Submit">
        </form>"""


@app.route("/goto", methods=["POST"])
def redirector():
    username = request.form.get("username")
    return redirect(url_for("user", name=username))


@app.route("/goto1")
def redirector_1():
    return redirect("https://www.google.com")


@app.route("/user/<name>")
def user(name):
    return f"Hello {name}"


if __name__ == "__main__":
    app.run(debug=True)

Debemos importar las bibliotecas anteriores, Flask, request, redirect y url_for. Sin importarlos, no podremos usar ninguna de las funciones que hemos usado en este código.

Según este código, la solicitud nos ayudará a solicitar un nombre para crear el nuevo sitio web, y la redirección nos permitirá redirigir al sitio web específico que mencionamos en los parámetros.

Por último, pero no menos importante, el url_for nos permitirá usar el nombre creado con la ayuda del formulario de la función index para crear un nuevo sitio web.

Autor: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

Artículo relacionado - Python Flask Redirect