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.
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.
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)
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