Abrufen von Abfrageparametern mit Flask

Salman Mehmood 15 Februar 2024
Abrufen von Abfrageparametern mit Flask

Wir werden mit dieser Erklärung lernen, wie man die Parameter aus der URL mit Hilfe des Request-Query-Strings in Flask erhält.

Extrahieren Sie den Parameter mit Hilfe von Request Query String in Flask

Im Allgemeinen erstellen wir eine saubere URL mit unseren Parametern in Flask, aber manchmal möchten wir aus irgendeinem Grund eine traditionelle Abfragezeichenfolge. Unsere Abfragezeichenfolgen sind einfach zu handhaben; sie werden nur durch & und den Wert auf der rechten Seite getrennt.

Jetzt zeigen wir Ihnen genau, wie Sie diese extrahieren, und wir können sie irgendwo in unserer Anwendung verwenden, also fangen wir an. Wir richten unsere Flask-App ein und importieren die Klasse Flask aus dem Flask-Modul. Außerdem müssen wir die Anfragevariable importieren und ein Objekt mit der Klasse Flask instanziieren.

from flask import Flask, request

Wir definieren den Hauptblock und innerhalb dieses Blocks verwenden wir die Methode run(), um unsere App auszuführen. Dann setzen wir debug gleich True.

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

Jetzt erstellen wir eine neue Route und rufen params für diese Route auf, und die Funktion wird Get_Query_Params() genannt. Wir werden einige Zeichenfolgen zurückgeben, um die Parameter aus der Abfragezeichenfolge zu erhalten.

Wir müssen die Requests-Variable verwenden, zwei Argumente definieren und auf den Abfrageparameter zugreifen. Um sie zu erhalten, müssen wir nur requests.args aufrufen, ein Wörterbuch mit allen Parametern im Abfragestring.

Der erste heißt VAR1 und der zweite VAR2 und speichert die Wörterbuchwerte mit dem Schlüssel requests.args['key']. Wir geben diese Wörterbuchelemente zurück, um sie auf der Seite anzuzeigen.

@app.route("/params")
def Get_Query_Params():
    VAR1 = request.args["var1"]
    VAR2 = request.args["var2"]

    return f"Student name is: {VAR!} and Father nmae is: {VAR2}"

Lassen Sie uns den Server starten, den Parameter innerhalb der Route übergeben und Enter drücken, um den angezeigten Parameter zu sehen.

Flask Abfrageparameter abrufen Ausgabe 1

Jetzt können wir sehen, dass wir diese Werte einfach aus der Abfragezeichenfolge extrahieren können.

Wir nehmen ein weiteres Beispiel, um auf alle Abfrageparameter zuzugreifen. Wir erstellen eine Variable namens var1, die die request.args speichert; Dies ist ein Wörterbuch, das alle Schlüssel und Werte enthält, die wir als unsere Abfrageparameter bereitstellen.

Jetzt wenden wir eine for-Schleife auf die Wörterbuchelemente an und können auf diese Schlüssel und Werte zugreifen und diese drucken.

@app.route("/")
def Get_Query_Params():
    var1 = request.args
    for key, value in var1.items():
        print(key, value)

Mithilfe der Schlüssel können wir auch mithilfe von if-else-Anweisungen auf bestimmte Abfrageparameter zugreifen, um zu überprüfen, ob diese tatsächlichen Abfrageparameter vorhanden sind. Im Moment verwenden wir für den Zugriff auf den Schlüssel var1.get() anstelle von request.args['key'], da get() die Methode ist, die uns hilft, auf den Schlüssel zuzugreifen.

if "nationality" in var1.keys():
    print(var1.get("nationality"))
return f'Age is {var1.get("age")} and nationality is {var1.get("nationality")}'

Jetzt speichern und starten wir den Server, gehen zum Browser und stellen das Schlüssel-Wert-Paar innerhalb der Route bereit. Wenn wir diese Seite ausführen, können wir die angezeigten Parameter sehen und in der Konsole sehen, wo Schlüssel und Werte gedruckt werden.

Ausgabe von Flask-Abfrageparametern abrufen 2

Es ist dem Abrufen der Daten aus einem Formular sehr ähnlich; Wenn jemand ein Formular einreicht, können wir es von einem Endpunkt extrahieren.

Vollständiger Python-Code:

from flask import Flask, request

app = Flask(__name__)

# @app.route('/params')
# def Get_Query_Params():
#     VAR1=request.args['var1']
#     VAR2=request.args['var2']

#     return f'Student name is: {VAR1} and Father nmae is: {VAR2}'


@app.route("/")
def Get_Query_Params():
    var1 = request.args
    for key, value in var1.items():
        print(key, value)
    if "nationality" in var1.keys():
        print(var1.get("nationality"))
    return f'Age is {var1.get("age")} and nationality is {var1.get("nationality")}'


if __name__ == "__main__":
    app.run(debug=True)
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