Redirection Flask

Salman Mehmood 12 juillet 2022
Redirection Flask

Nous allons apprendre, avec cette explication, comment utiliser la fonction redirect() pour rediriger l’utilisateur et voir comment nous pouvons l’utiliser à plusieurs fins dans Flask.

Rediriger l’utilisateur à l’aide de la fonction redirect() dans Flask

Dans Flask, la redirection est assez simple. Il redirige simplement un utilisateur ou quelqu’un sur votre site en utilisant une requête ou une API.

Il existe différentes façons de rediriger l’utilisateur. Par exemple, s’ils atterrissent sur votre page d’accueil et qu’ils se connectent à votre site, vous pouvez les rediriger soit vers la zone d’adhésion, soit vers la page de récupération de mot de passe, où vous le souhaitez.

En général, une redirection est un moyen d’envoyer les gens vers la page suivante du côté serveur. Ils n’ont donc pas à initier la demande sur cette page.

Avant de commencer à écrire le code, nous allons vous montrer la syntaxe de la fonction redirect() ici.

Syntaxe:

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

Nous n’utiliserons que les deux premiers paramètres, location et code. Le location est une URL, et le code est le code d’état HTTP qui est envoyé avec la requête ou la réponse redirect().

Démontrons cela avec un peu de code. Ici, nous allons configurer rapidement une application Flask et commencer par importer Flask.

Nous allons configurer quelques routes : l’une consiste à créer une fonction index() avec des balises header, et une autre est une fonction MEMBERS() qui utilise également une balise header avec un point de terminaison spécifique.

Le premier exemple est la redirection entre les pages de notre application. Nous avons créé deux vues ou deux pages, et nous voulons que quelqu’un qui navigue vers l’index soit automatiquement redirigé vers la page des membres.

Nous allons donc utiliser la fonction redirect() avec la fonction url_for(). La fonction redirect() va prendre un emplacement pour le premier paramètre, et ce paramètre location doit être le url_for().

Il suffit de taper le nom de la fonction à l’intérieur de url_for() que l’on souhaite, la fonction MEMBERS() génère l’URL des membres, puis cette fonction index() redirigera l’utilisateur vers les membres ‘.

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)

Après l’avoir enregistrée, si nous exécutons cette application en utilisant la page d’index et lorsque nous y naviguons, elle nous redirige vers la page des membres.

Ouvrez les outils de développement et voyons ce que dit le réseau lorsque nous exécutons cette page. Nous avons demandé l’index ici, ce qui nous donne un statut de 302.

302 est généralement utilisé lorsque nous redirigeons quelqu’un ; il nous envoie à la page des membres, mais nous n’avons pas demandé au serveur de le faire.

Production:

flacon rediriger la sortie 1

Nous pouvons également changer le deuxième paramètre en 404 comme redirection, ce qui serait étrange, mais nous pouvons l’utiliser dans n’importe quelle condition. Nous irons à l’index, qui nous dit que Vous devriez être automatiquement redirigé vers l'URL cible. Sinon, cliquez sur le lien.

C’est parce que généralement, un 404 est utilisé pour les erreurs et non pour les redirections, mais si nous cliquons sur ce lien généré par Flask, il nous envoie à la zone des membres. Vous n’avez pas besoin de modifier le code d’état sauf si vous avez une raison spécifique ; garde cela à l’esprit.

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)

Production:

flacon rediriger la sortie 2

Supposons que vous souhaitiez rediriger vers n’importe quelle URL au lieu de la zone des membres ; disons que vous voulez rediriger vers quelque chose qui est hors de votre site pour une raison quelconque. Dans notre cas, nous souhaitons qu’ils soient automatiquement redirigés vers 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)

Production:

flacon rediriger la sortie 3

En fonction du résultat de ce processus, vous les redirigerez quelque part. Par exemple, vous obtenez les données de publication pour leurs informations de connexion si vous déterminez que le nom d’utilisateur et le mot de passe sont valides.

Si le mot de passe est correct, vous les redirigez vers la zone d’un membre ou n’importe où vous voulez montrer l’utilisateur. Ou vous pouvez les rediriger vers une page de récupération de mot de passe si le mot de passe est erroné ; cela dépend entièrement de vous, mais sachez que la redirection a généralement lieu après un certain traitement dans la vue.

Salman Mehmood avatar Salman Mehmood avatar

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