Saltar al contenido

Flask, cómo devolver un código de estado de éxito para una llamada ajax

Te doy la bienvenida a nuestro sitio web, en este sitio hallarás la solucíon a lo que necesitas.

Solución:

Acerca de las respuestas en Flask:

Acerca de las respuestas

El valor de retorno de una función de vista se convierte automáticamente en un objeto de respuesta para usted. Si el valor de retorno es un string se convierte en un objeto de respuesta con el string como cuerpo de respuesta, un 200 OK código de estado y un text/html tipo de Mimica. La lógica que aplica Flask para convertir los valores devueltos en objetos de respuesta es la siguiente:

  1. Si se devuelve un objeto de respuesta del tipo correcto, se devuelve directamente desde la vista.
  2. si es un stringse crea un objeto de respuesta con esos datos y los parámetros predeterminados.
  3. Si se devuelve una tupla, los elementos de la tupla pueden proporcionar información adicional. Tales tuplas tienen que estar en la forma (response, status, headers) o (response, headers) donde al menos un elemento tiene que estar en la tupla. los status valor anulará el código de estado y headers puede ser una lista o diccionario de valores de encabezado adicionales.
  4. Si nada de eso funciona, Flask asumirá que el valor devuelto es una aplicación WSGI válida y lo convertirá en un objeto de respuesta.

Entonces, si devuelves el texto string (como lo está haciendo), el código de estado que debe recibir su llamada AJAX es 200 OK, y su devolución de llamada exitosa debe estar ejecutándose. Sin embargo, te recomiendo que devuelvas una respuesta con formato JSON como:

return json.dumps('success':True), 200, 'ContentType':'application/json' 

Como opción a la respuesta de aabilio, puede usar el método jsonify en Flask que establece automáticamente el tipo de contenido:

from flask import jsonify

resp = jsonify(success=True)
return resp

Puede (opcionalmente) establecer el código de respuesta explícitamente:

resp.status_code = 200

Además de las respuestas ya publicadas, encuentro usando el make_response en Flask (desde la versión 0.6) para ser una alternativa más clara, especialmente cuando necesita devolver códigos de estado con la respuesta JSON para API de Flask:

from flask import jsonify, make_response

# ... other code ...
data = 'message': 'Created', 'code': 'SUCCESS'
return make_response(jsonify(data), 201)

Además, este enfoque establecerá automáticamente el Content-Type encabezado a application/json.

Puntuaciones y comentarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *