Verwendung verschiedener Arten von Parametern innerhalb der URL in Flask

Salman Mehmood 15 Februar 2024
Verwendung verschiedener Arten von Parametern innerhalb der URL in Flask

Wir werden mit dieser Erklärung etwas über URL-Konverter in der Flask-App lernen, was bedeutet, dass Parameter in jeder URL übergeben werden können. Wir werden auch lernen, wie man verschiedene Arten von Parametern innerhalb der URL in der Flask-App verwendet.

Verwenden Sie verschiedene Arten von Parametern innerhalb der URL in Flask

Jetzt werden wir URL-Parameter besprechen und sie demonstrieren; Wir beginnen mit dem Standard, dem einfachsten Beispiel. Dazu erstellen wir eine Route und übergeben die route(), die '/default/<params>' wäre.

Das /default führt zur URL. Der zweite Teil der URL ist der Parameter, wobei wir den Parameter innerhalb des Größer-Kleiner-als-Symbols angeben.

Dann erstellen wir eine Funktion namens DEFAULT() und übergeben den gleichen Namen für den Funktionsparameter, den wir in unserer Route definiert haben, also wäre der Parameter in diesem Fall params. Dann geben wir den Wert zurück und verketten den Wert mit dieser Zeichenfolge.

from flask import Flask

app = Flask(__name__)


@app.route("/default/<params>")
def DEFAULT(params):
    return "The parameter is: " + params


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

Lassen Sie uns unsere App starten und den Browser öffnen, und nachdem wir /default eingegeben haben, wenn wir einen Namen übergeben, sehen wir den Wert eines Parameters, der standardmäßig eine Zeichenfolge ist.

Wir zeigen Ihnen die anderen Datentypen, die Sie verwenden können, aber für die Analyse des Strings zeigen wir Ihnen, dass, wenn wir eine Zahl und eine Dezimalzahl übergeben, diese alle funktionieren, weil sie in einen String konvertiert werden. Auf diese Weise erhalten wir den Wert dessen, was wir im Endpunkt übergeben haben.

Flask-URL-Parameterausgabe 1

Wenn wir den Parameter nicht übergeben, erhalten wir einen nicht gefundenen Fehler, da ein Parameter erwartet wird. Um diesen Fall zu handhaben, wenn der Benutzer nichts übergibt, geben wir eine andere Route an und setzen sie einfach oben.

Innerhalb dieser Route übergeben wir ein Schlüsselwortargument namens defaults und nehmen params und seinen Wert.

@app.route('/default', defaults={'params': 'John'})

Jetzt werden wir es neu starten, und wenn wir mit der URL gehen, ohne einen Parameter zu übergeben, erhalten wir den Standardwert, der John ist, aber wenn wir den Wert übergeben, erhalten wir diesen Wert anstelle des Standardwerts.

Flask-URL-Parameterausgabe 2

Lassen Sie uns einen Datentyp als Zeichenfolge in unseren Routen übergeben, um anzugeben, dass dies nur eine Zeichenfolge sein kann. Wir setzen zuerst string, dann einen Doppelpunkt und dann den Namen des Parameters.

Wir definieren eine weitere Funktion für diese Route namens String_Func() und geben den String zurück und verketten den Parameter, den wir in der Route definiert haben.

@app.route("/str-url/<string:str_params>")
def String_Func(str_params):
    return "The string parameter is: " + str_params

Wir können sehen, dass dies genauso funktioniert wie die Standardroute, da der Parametertyp standardmäßig eine Zeichenfolge ist.

Ausgabe der Flask-URL-Parameter 3

Sehen wir uns nun an, was passiert, wenn wir mit verschiedenen Datentypen umgehen wollen und der nächste Datentyp eine ganze Zahl wäre. Lassen Sie uns einen weiteren Routenpass definieren <int:int_params>; Der Parameter wäre, wie auch immer Sie ihn nennen.

Dann definieren wir wie gewohnt eine Funktion und wandeln sie in einen String-Datentyp um, da wir einen String nicht zu einer Ganzzahl verketten können.

@app.route("/int-url/<int:int_params>")
def Int_Func(int_params):
    return "The integer parameter is: " + str(int_params)

Ausgabe

Flask-URL-Parameterausgabe 4

Der nächste Datentyp, den wir verwenden, wäre ein Float, beginnend mit <float:float_params>.

@app.route("/float-url/<float:float_params>")
def Float_Func(float_params):
    return "The float parameter is: " + str(float_params)

Wenn wir 3.5 übergeben, zeigt die Seite es an, aber wenn wir nur 3 übergeben, erhalten wir einen Fehler, weil 3 eine Ganzzahl ist und der Flask dies nicht zulässt. Wenn Sie 3.0 möchten, müssen Sie 3.0 übergeben oder eine andere Route erstellen, die alle Ganzzahlen aufnimmt.

Ausgabe der Flask-URL-Parameter 5

Eine weitere Sache ist eine Pfad-URL, damit wir eine neue Route dafür definieren, und wir müssen den Pfaddatentyp und den Pfadnamen wie <Pfad:unser_Pfad> übergeben.

@app.route("/path-route/<path:our_path>")
def Path_Func(our_path):
    return "Our path is: " + our_path

Jetzt gehen wir zur URL und geben ihr den Pfad, dann zeigt sie dies an, aber wenn wir einige Schrägstriche einfügen und ein anderes Unterverzeichnis angeben, wählt sie alles aus und schließt die Schrägstriche ein.

Flask-URL-Parameterausgabe 6

Das Letzte, was wir Ihnen zeigen möchten, ist, dass Sie mehr als einen Parameter in derselben Route kombinieren können. Wir kombinieren String- und Integer-Parameter wie <string:name>/<int:num>.

Lassen Sie uns eine Funktion definieren und beide Parameter innerhalb der Funktion angeben und zurückgeben.

@app.route("/combine-route/<string:name>/<int:num>")
def Combine_Func(name, num):
    return "User name is: " + name + " and user id is: " + str(num)

Sehen Sie sich die Ausgabe an, damit Sie sie besser verstehen können.

Flask-URL-Parameterausgabe 7

Vollständiger Quellcode der Flask App:

from flask import Flask

app = Flask(__name__)
# This is the default route


@app.route("/default", defaults={"params": "John"})
@app.route("/default/<params>")
def DEFAULT(params):
    return "The string parameter is: " + params


# This route holds string data type
@app.route("/str-url/<string:str_params>")
def String_Func(str_params):
    return "The string parameter is: " + str_params


# This route holds int data type
@app.route("/int-url/<int:int_params>")
def Int_Func(int_params):
    return "The integer parameter is: " + str(int_params)


# This route holds float data type
@app.route("/float-url/<float:float_params>")
def Float_Func(float_params):
    return "The float parameter is: " + str(float_params)


# This route holds path data type
@app.route("/path-route/<path:our_path>")
def Path_Func(our_path):
    return "Our path is: " + our_path


# This route combine two parameters
@app.route("/combine-route/<string:name>/<int:num>")
def Combine_Func(name, num):
    return "User name is: " + name + " and user id is: " + str(num)


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