Manejar datos de solicitud en formato JSON en Flask
Aprenderemos, con esta explicación, qué es JSON y cómo manejar los datos de solicitudes entrantes en formato JSON. También aprenderemos a usar la extensión Postman Chrome para enviar datos JSON.
Manejar datos de solicitud en formato JSON en Flask
JSON es un formato de texto compacto y legible para estructurar datos. JSON significa JavaScript Object Notation; es un formato de texto que es completamente independiente del idioma.
Comienza y termina con corchetes. El formato JSON es muy fácil de leer para los humanos y también es fácil de analizar y generar para las computadoras.
Hay una forma más de analizar los datos de la solicitud en su aplicación Flask, y ese método utilizará un objeto JSON. Para demostrar esto, usaremos Postman, una herramienta en Chrome que le permite enviar solicitudes HTTP a URL particulares.
Lo primero que debemos hacer es crear una ruta para el manejo de JSON. Llamaremos a esto /post-data
, que solo aceptará la solicitud POST
, pero solo depende de lo que quieras usar el método HTTP.
Ahora definiremos un método llamado POST_REQ_DATA()
. Devolveremos un objeto JSON, jsonify()
, y pondremos un diccionario dentro de este.
@app.route("/post-data", methods=["POST"])
def POST_REQ_DATA():
return jsonify({"Post_Request": "Sent"})
Si vamos a Postman y cambiamos a una solicitud POST
, escribimos /post-data
y lo enviamos, veremos el resultado que enviamos a través de jsonify()
.
Pero por ahora, no está tomando ningún tipo de solicitud de datos. Para acceder a las solicitudes JSON, volveremos a nuestra aplicación Flask y, dentro de la función, llamaremos al método request.get_json()
.
Este método tomará el objeto JSON entrante y lo convertirá en estructuras de datos de Python. Cuando lo pasamos a jsonify()
, encontrará un objeto en un objeto JSON y lo convertirá en diccionarios de Python, y los arrays en el objeto JSON se convertirán en listas en Python.
Ahora declararemos un objeto llamado P_R
usando request.get_json()
, luego lo usaremos como clave para definir algunos valores y pasarlos dentro del método jsonify()
. Estos valores deberían ser solo variables regulares.
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],
}
)
Volveremos a Postman, haremos clic en la pestaña Body y cambiaremos a Raw, luego nos aseguraremos de que la aplicación JSON esté seleccionada en esta lista desplegable porque es del tipo Jason mime. Ahora podemos escribir consultas JSON aquí y presionar el botón Send
después de alimentar nuestros datos JSON; la respuesta se muestra a continuación.
El código fuente completo de nuestra aplicación Flask se muestra a continuación:
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)
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