Redirección en Flask
Aprenderemos, con esta explicación, cómo usar la función redirect()
para redirigir al usuario y veremos cómo podemos usarla para múltiples propósitos en Flask.
Redirigir al usuario con la ayuda de la función redirect()
en Flask
En Flask, la redirección es bastante simple. Simplemente redirige a un usuario o alguien en su sitio mediante una solicitud o una API.
Hay diferentes formas de redirigir al usuario. Por ejemplo, si aterrizan en su página de inicio e inician sesión en su sitio, puede redirigirlos al área de membresía o puede redirigirlos a la página de recuperación de contraseña, donde lo desee.
En general, una redirección es una forma de enviar a las personas a la siguiente página desde el lado del servidor. Así que no tienen que iniciar la solicitud en esa página.
Antes de comenzar a escribir el código, le mostraremos aquí la sintaxis de la función redireccionar()
.
Sintaxis:
flask.redirect(location, code=302, Response=None)
Solo utilizaremos los dos primeros parámetros, location
y code
. La location
es una URL y el code
es el código de estado HTTP que se envía con la solicitud o la respuesta redirect()
.
Demostremos eso con algo de código. Aquí, configuraremos una aplicación Flask rápidamente y comenzaremos con la importación de Flask.
Configuraremos un par de rutas: una es crear una función index()
con etiquetas header
, y otra es una función MEMBERS()
que también usa una etiqueta header
con un punto final específico.
El primer ejemplo es la redirección entre páginas en nuestra aplicación. Creamos dos vistas o dos páginas, y queremos que alguien que navega al índice sea redirigido automáticamente a la página de miembros.
Entonces, usaremos la función redirect()
junto con la función url_for()
. La función redirect()
tomará una ubicación para el primer parámetro, y este parámetro location
tiene que ser la url_for()
.
Solo necesitamos escribir el nombre de la función dentro de url_for()
que queremos, la función MEMBERS()
genera la URL para los miembros, y luego esta función index()
redirigirá al usuario a la página de los miembros.
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route("/")
def index():
return redirect(url_for("MEMBERS"))
@app.route("/members")
def MEMBERS():
return "<h1>Members Area</h1>"
if __name__ == "__main__":
app.run(debug=True)
Después de guardarlo, si ejecutamos esta aplicación usando la página de índice y cuando navegamos allí, nos redirige a la página de miembros.
Abra Herramientas para desarrolladores y veamos qué dice la red cuando ejecutamos esta página. Solicitamos el índice aquí, que nos da un estado de 302
.
302
se usa típicamente cuando redirigimos a alguien; nos envía a la página de miembros, pero no solicitamos al servidor que hiciera esto.
Producción:
También podemos cambiar el segundo parámetro a 404
como redirección, lo que sería extraño, pero podemos usarlo en cualquier condición. Iremos al índice, que nos dice que Deberías ser redirigido automáticamente a la URL de destino. Si no, haz clic en el enlace
.
Es porque normalmente se usa un 404
para errores y no para redireccionamientos, pero si hacemos clic en ese enlace generado por Flask, nos envía al área de miembros. No necesita modificar el código de estado a menos que tenga un motivo específico; ten eso en mente.
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route("/")
def index():
return redirect(url_for("MEMBERS"), 404)
@app.route("/members")
def MEMBERS():
return "<h1>Members Area</h1>"
if __name__ == "__main__":
app.run(debug=True)
Producción:
Suponga que desea redirigir a cualquier URL en lugar del área de miembros; digamos que desea redirigir a algo que está fuera de su sitio por cualquier motivo. En nuestro caso, queremos que sean redirigidos automáticamente a google.com
.
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route("/")
def index():
return redirect("https://www.google.com")
@app.route("/members")
def MEMBERS():
return "<h1>Members Area</h1>"
if __name__ == "__main__":
app.run(debug=True)
Producción:
Dependiendo del resultado de ese proceso, los redirigirás a alguna parte. Por ejemplo, obtiene los datos de la publicación para su información de inicio de sesión si descubre que el nombre de usuario y la contraseña son válidos.
Si la contraseña es correcta, los redirigirá al área de miembros o a cualquier lugar que desee mostrar al usuario. O puede redirigirlos a una página de recuperación de contraseña si la contraseña es incorrecta; eso depende completamente de usted, pero tenga en cuenta que la redirección generalmente se realiza después de algún procesamiento en la vista.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn