Accéder aux données de la demande
Lorsque vous travaillez avec une application Web, il est parfois important d’accéder aux données incluses dans la requête, au-delà de l’URL.
Dans Flask, ceci est stocké sous l’objet global request, auquel vous pouvez accéder dans votre code via from flask import request
.
Formulaire combiné et chaîne de requête
Flask permet également d’accéder à un CombinedMultiDict qui donne accès aux attributs request.form
et request.args
sous une seule variable.
Cet exemple extrait les données d’un champ de formulaire “name” soumis avec le champ “echo” dans la chaîne de requête.
Exemple de flacon :
from flask import Flask, request
app = Flask(import_name=__name__)
@app.route("/echo", methods=["POST"])
def echo():
name = request.values.get("name", "")
to_echo = request.values.get("echo", "")
response = "Hey there {}! You said {}".format(name, to_echo)
return response
app.run()
Accéder à la chaîne de requête
La chaîne de requête est la partie d’une requête qui suit l’URL, précédée d’un signe ?.
Exemple : https://encrypted.google.com/search
?hl=fr&q=stack%20overflow
Pour cet exemple, nous créons un simple serveur Web echo qui renvoie tout ce qui lui est soumis via le champ echo
dans les requêtes GET
.
Exemple : localhost:5000/echo
?echo=echo+this+back+to+me
Exemple de flacon :
from flask import Flask, request
app = Flask(import_name=__name__)
@app.route("/echo")
def echo():
to_echo = request.args.get("echo", "")
response = "{}".format(to_echo)
return response
if __name__ == "__main__":
app.run()
Accéder aux champs du formulaire
Vous pouvez accéder aux données de formulaire soumises via une requête “POST” ou “PUT” dans Flask via l’attribut “request.form”.
from flask import Flask, request
app = Flask(import_name=__name__)
@app.route("/echo", methods=["POST"])
def echo():
name = request.form.get("name", "")
age = request.form.get("age", "")
response = "Hey there {}! You said you are {} years old.".format(name, age)
return response
app.run()