Handhabung von Anfragedaten im JSON-Format in Flask

Salman Mehmood 15 Februar 2024
Handhabung von Anfragedaten im JSON-Format in Flask

Mit dieser Erklärung lernen wir, was JSON ist und wie eingehende Anfragedaten im JSON-Format behandelt werden. Wir werden auch lernen, wie man die Postman Chrome-Erweiterung verwendet, um JSON-Daten zu senden.

Handhabung von Anfragedaten im JSON-Format in Flask

JSON ist ein kompaktes, lesbares Textformat zur Strukturierung von Daten. JSON steht für JavaScript Object Notation; es ist ein völlig sprachunabhängiges Textformat.

Es beginnt und endet mit geschweiften Klammern. Das JSON-Format ist für Menschen sehr einfach zu lesen und auch für Computer einfach zu analysieren und zu generieren.

Es gibt eine weitere Möglichkeit, Anforderungsdaten an Ihre Flask-App zu parsen, und diese Methode verwendet ein JSON-Objekt. Um dies zu demonstrieren, verwenden wir Postman, ein Tool in Chrome, mit dem Sie HTTP-Anforderungen an bestimmte URLs senden können.

Als erstes müssen wir eine Route für die Handhabung von JSON erstellen. Wir nennen dies /post-data, was nur POST-Anforderungen entgegennimmt, aber es hängt nur davon ab, was Sie mit der HTTP-Methode verwenden möchten.

Jetzt definieren wir eine Methode namens POST_REQ_DATA(). Wir geben ein JSON-Objekt, jsonify(), zurück und fügen ein Wörterbuch darin ein.

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

Wenn wir zu Postman gehen und zu einer POST-Anfrage wechseln, die /post-data eingeben und senden, sehen wir die Ausgabe, die wir über jsonify() gesendet haben.

Flask-Anforderungs-JSON-Ausgabe 1

Aber im Moment nimmt es keine Art von Anfragedaten entgegen. Um auf JSON-Anfragen zuzugreifen, gehen wir zurück in unsere Flask-App und rufen innerhalb der Funktion die Methode request.get_json() auf.

Diese Methode nimmt das eingehende JSON-Objekt und konvertiert es in Python-Datenstrukturen. Wenn wir es an jsonify() übergeben, findet es ein Objekt in einem JSON-Objekt und konvertiert es in Python-Wörterbücher, und Arrays im JSON-Objekt werden in Listen in Python konvertiert.

Jetzt werden wir ein Objekt namens P_R mit request.get_json() deklarieren, dann werden wir es als Schlüssel verwenden, um einige Werte zu definieren und sie innerhalb der jsonify()-Methode zu übergeben. Diese Werte sollten nur reguläre Variablen sein.

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],
        }
    )

Wir gehen zurück zum Postman, klicken auf die Registerkarte Body und wechseln zu Raw. Stellen Sie dann sicher, dass die JSON-Anwendung in dieser Dropdown-Liste ausgewählt ist, da es sich um den MIME-Typ Jason handelt. Jetzt können wir hier JSON-Abfragen schreiben und auf die Schaltfläche Send klicken, nachdem wir unsere JSON-Daten eingegeben haben; Die Antwort ist unten dargestellt.

Flask-Anforderungs-JSON-Ausgabe 2

Der vollständige Quellcode unserer Flask-App ist unten dargestellt:

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