Flask-Umleitung

Salman Mehmood 15 Februar 2024
Flask-Umleitung

Mit dieser Erklärung lernen wir, wie man die Funktion redirect() verwendet, um den Benutzer umzuleiten, und sehen, wie wir sie für verschiedene Zwecke in Flask verwenden können.

Leiten Sie den Benutzer mit Hilfe der redirect()-Funktion in Flask um

In Flask ist das Umleiten ziemlich einfach. Es leitet einfach einen Benutzer oder jemanden auf Ihrer Website um, indem es eine Anfrage oder eine API verwendet.

Es gibt verschiedene Möglichkeiten, den Benutzer umzuleiten. Wenn sie beispielsweise auf Ihrer Homepage landen und sich auf Ihrer Website anmelden, können Sie sie entweder zum Mitgliederbereich oder zur Passwortwiederherstellungsseite umleiten, wo immer Sie möchten.

Im Allgemeinen ist eine Weiterleitung eine Möglichkeit, Personen von der Serverseite auf die nächste Seite zu leiten. Sie müssen die Anfrage also nicht auf dieser Seite initiieren.

Bevor wir mit dem Schreiben des Codes beginnen, zeigen wir Ihnen hier die Syntax der Funktion redirect().

Syntax:

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

Wir verwenden nur die ersten beiden Parameter location und code. Der location ist eine URL und der code ist der HTTP-Statuscode, der mit der Anfrage oder der redirect()-Antwort gesendet wird.

Lassen Sie uns das mit etwas Code demonstrieren. Hier richten wir schnell eine Flask-App ein und beginnen mit dem Import von Flask.

Wir werden ein paar Routen einrichten: eine erstellt eine index()-Funktion mit header-Tags, und eine andere ist eine MEMBERS()-Funktion, die ebenfalls ein header-Tag mit einem bestimmten Endpunkt verwendet.

Das erste Beispiel ist die Umleitung zwischen Seiten in unserer App. Wir haben zwei Aufrufe oder zwei Seiten erstellt und möchten, dass jemand, der zum Index navigiert, automatisch zur Mitgliederseite weitergeleitet wird.

Wir werden also die Funktion redirect() zusammen mit der Funktion url_for() verwenden. Die Funktion redirect() nimmt einen Ort für den ersten Parameter, und dieser location-Parameter muss url_for() sein.

Wir müssen nur den Namen der Funktion innerhalb der gewünschten url_for() eingeben, die MEMBERS()-Funktion generiert die URL für Mitglieder, und dann leitet diese index()-Funktion den Benutzer zur Mitgliederseite umleiten.

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)

Wenn wir diese App nach dem Speichern über die Indexseite ausführen und dort navigieren, werden wir zur Mitgliederseite weitergeleitet.

Öffnen Sie die Entwicklertools und sehen Sie, was das Netzwerk sagt, wenn wir diese Seite ausführen. Wir haben hier den Index angefordert, der uns einen Status von 302 gibt.

302 wird normalerweise verwendet, wenn wir jemanden umleiten; es schickt uns zur Mitgliederseite, aber wir haben den Server nicht dazu aufgefordert.

Ausgabe:

Flaskumleitungsausgabe 1

Wir können den zweiten Parameter auch in 404 als Weiterleitung ändern, was seltsam wäre, aber wir können ihn unter allen Bedingungen verwenden. Wir gehen zum Index, der uns sagt: Sie sollten automatisch zur Ziel-URL weitergeleitet werden. Wenn nicht, klicken Sie auf den Link.

Das liegt daran, dass ein 404 normalerweise für Fehler und nicht für Weiterleitungen verwendet wird, aber wenn wir auf diesen von Flask generierten Link klicken, werden wir zum Mitgliederbereich weitergeleitet. Sie müssen den Statuscode nicht ändern, es sei denn, Sie haben einen bestimmten Grund; Merk dir das.

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)

Ausgabe:

Flaskumleitungsausgabe 2

Angenommen, Sie möchten zu einer beliebigen URL statt zum Mitgliederbereich umleiten; Angenommen, Sie möchten aus irgendeinem Grund auf etwas umleiten, das sich außerhalb Ihrer Website befindet. In unserem Fall möchten wir, dass sie automatisch auf google.com weitergeleitet werden.

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)

Ausgabe:

Flaskumleitungsausgabe 3

Abhängig vom Ergebnis dieses Prozesses werden Sie sie irgendwohin umleiten. Beispielsweise erhalten Sie die Postdaten für ihre Anmeldeinformationen, wenn Sie herausfinden, dass der Benutzername und das Passwort gültig sind.

Wenn das Passwort korrekt ist, würden Sie sie in einen Mitgliederbereich oder an einen anderen Ort weiterleiten, den Sie dem Benutzer zeigen möchten. Oder Sie können sie auf eine Passwort-Wiederherstellungsseite umleiten, wenn das Passwort falsch ist; Das liegt ganz bei Ihnen, aber Sie sollten wissen, dass die Umleitung normalerweise nach einer gewissen Verarbeitung in der Ansicht erfolgt.

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

Verwandter Artikel - Python Flask Redirect