Gérer les données de demande au format JSON dans Flask

Salman Mehmood 15 février 2024
Gérer les données de demande au format JSON dans Flask

Nous apprendrons, avec cette explication, ce qu’est JSON et comment gérer les données de requête entrantes au format JSON. Nous apprendrons également à utiliser l’extension Postman Chrome pour envoyer des données JSON.

Gérer les données de demande au format JSON dans Flask

JSON est un format de texte compact et lisible pour structurer les données. JSON signifie JavaScript Object Notation ; c’est un format de texte complètement indépendant de la langue.

Il commence et se termine par des accolades. Le format JSON est très facile à lire pour les humains, et il est également facile à analyser et à générer pour les ordinateurs.

Il existe une autre façon d’analyser les données de demande dans votre application Flask, et cette méthode utilisera un objet JSON. Pour le démontrer, nous utiliserons Postman, un outil de Chrome qui vous permet d’envoyer des requêtes HTTP à des URL particulières.

La première chose que nous devons faire est de créer une route pour gérer JSON. Nous appellerons cela /post-data, qui ne prendra que la requête POST, mais cela dépend simplement de ce que vous voulez utiliser de la méthode HTTP.

Nous allons maintenant définir une méthode appelée POST_REQ_DATA(). Nous allons retourner un objet JSON, jsonify(), et mettre un dictionnaire à l’intérieur de celui-ci.

@app.route("/post-data", methods=["POST"])
def POST_REQ_DATA():
    return jsonify({"Post_Request": "Sent"})

Si nous allons à Postman et passons à une requête POST, tapez le /post-data et l’envoyons, nous verrons la sortie que nous avons envoyée via le jsonify().

Demande Flask Sortie JSON 1

Mais pour l’instant, il ne prend aucun type de données de demande. Pour accéder aux requêtes JSON, nous retournerons dans notre application Flask, et à l’intérieur de la fonction, nous appellerons la méthode request.get_json().

Cette méthode prendra l’objet JSON entrant et le convertira en structures de données Python. Lorsque nous le passons à jsonify(), il trouvera un objet sur un objet JSON et le convertira en dictionnaires Python, et les tableaux de l’objet JSON seront convertis en listes en Python.

Nous allons maintenant déclarer un objet appelé P_R en utilisant request.get_json(), puis nous l’utiliserons comme clé pour définir certaines valeurs et les passer à l’intérieur de la méthode jsonify(). Ces valeurs ne doivent être que des variables régulières.

def POST_REQ_DATA():
    P_R = request.get_json()
    company_name = P_R["company_name"]
    location = P_R["location"]
    userlist = P_R["userlist"]
    return jsonify(
        {
            "Post_Request": "Sent",
            "company_name": company_name,
            "location": location,
            "userlist": userlist[1],
        }
    )

Nous allons revenir au facteur, cliquer sur l’onglet Corps et passer à Raw, puis nous assurer que l’application JSON est sélectionnée dans cette liste déroulante car il s’agit du type mime Jason. Maintenant, nous pouvons écrire des requêtes JSON ici et appuyer sur le bouton Send après avoir alimenté nos données JSON ; la réponse est indiquée ci-dessous.

Demande Flask Sortie JSON 2

Le code source complet de notre application Flask est présenté ci-dessous :

from flask import Flask, jsonify, request

app = Flask(__name__)


@app.route("/post-data", methods=["POST"])
def POST_REQ_DATA():
    P_R = request.get_json()
    company_name = P_R["company_name"]
    location = P_R["location"]
    userlist = P_R["userlist"]
    return jsonify(
        {
            "Post_Request": "Sent",
            "company_name": company_name,
            "location": location,
            "userlist": userlist[1],
        }
    )


# We feed the follwing data inside the postman
# {'company_name':'Delftstack','location':'Netherland','userlist':['Harry Parker','Goerge Wilson']}

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