Obtenir les paramètres de requête à l'aide de Flask
Nous allons apprendre, avec cette explication, comment obtenir les paramètres de l’URL à l’aide de la chaîne de requête de requête dans Flask.
Extraire le paramètre à l’aide de Request Query String in Flask
Généralement, nous construisons une URL propre avec nos paramètres dans Flask, mais parfois nous voulons une chaîne de requête traditionnelle pour une raison quelconque. Nos chaînes de requête sont faciles à utiliser ; ils sont juste séparés par &
et la valeur sur le côté droit.
Nous allons maintenant vous montrer exactement comment les extraire, et nous pouvons les utiliser quelque part dans notre application, alors commençons. Nous allons configurer notre application Flask, et nous allons importer la classe Flask
du module Flask, et nous devons également importer la variable de requête et instancier un objet avec la classe Flask
.
from flask import Flask, request
Nous allons définir le bloc principal, et à l’intérieur de ce bloc, nous utiliserons la méthode run()
pour exécuter notre application. Ensuite, nous mettrons debug
égal à True
.
if __name__ == "__main__":
app.run(debug=True)
Nous allons maintenant créer une nouvelle route et appeler params
pour cette route, et la fonction sera nommée Get_Query_Params()
. Nous renverrons certaines chaînes pour extraire les paramètres de la chaîne de requête.
Nous devrons utiliser la variable requests, définir deux arguments et accéder au paramètre de requête. Pour les obtenir, il suffit d’appeler requests.args
, un dictionnaire avec tous les paramètres de la chaîne de requête.
Le premier s’appellera VAR1
, et le second s’appellera VAR2
et stockera les valeurs du dictionnaire à l’aide de la clé requests.args['key']
. Nous renvoyons ces éléments de dictionnaire pour les afficher sur la page.
@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}"
Démarrons le serveur, transmettons le paramètre à l’intérieur de la route et appuyez sur Enter pour voir le paramètre affiché.
Nous pouvons maintenant voir que nous extrayons facilement ces valeurs de la chaîne de requête.
Nous allons prendre un autre exemple pour accéder à tous les paramètres de la requête. Nous allons créer une variable nommée var1
, qui stockera les request.args
; il s’agit d’un dictionnaire contenant toutes les clés et valeurs que nous fournissons comme paramètres de requête.
Nous allons maintenant appliquer une boucle for
sur les éléments du dictionnaire et pouvoir accéder et imprimer ces clés et valeurs.
@app.route("/")
def Get_Query_Params():
var1 = request.args
for key, value in var1.items():
print(key, value)
À l’aide des clés, nous pouvons également accéder à des paramètres de requête spécifiques à l’aide d’instructions if-else pour vérifier que ces paramètres de requête réels existent. Pour l’instant, la façon dont nous utilisons pour accéder à la clé est d’utiliser var1.get()
au lieu d’utiliser request.args['key']
car get()
est la méthode qui nous aide à accéder à la clé.
if "nationality" in var1.keys():
print(var1.get("nationality"))
return f'Age is {var1.get("age")} and nationality is {var1.get("nationality")}'
Maintenant, nous enregistrons et démarrons le serveur, allons dans le navigateur et fournissons la paire clé-valeur à l’intérieur de la route. Lorsque nous exécutons cette page, nous pouvons voir les paramètres affichés, ainsi que nous pouvons voir dans la console où les clés et les valeurs sont imprimées.
C’est très similaire à l’obtention des données d’un formulaire ; si quelqu’un soumet un formulaire, nous pouvons l’extraire d’un point de terminaison.
Code Python complet :
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