sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo devolver datos de una consulta MySQL en una aplicación Flask?

Use el jsonify integrado de Flask función, ya que es ya extendido para trabajar con fechas :

from Flask import jsonify

@app.route('/temp')
def temp():
    # Load database results
    # and then ...
    return jsonify(data=cur.fetchall())

Los datos se devolverán como un objeto con una sola clave (data ) que contiene una matriz de filas (que se representarán como matrices u objetos según lo que fetchall devuelve filas como).

Si necesita serializar más tipos (como en su caso, está recuperando date en lugar de datetime instancias, deberá anular el json_encoder de Flask propiedad con una subclase de JSONEncoder que sepa manejar tus tipos:

class SpecializedJSONEncoder(JSONEncoder):
    def default(o):
        if isinstance(o, date):
            return date.strftime("%Y-%m-%d")
        else:
            super(SpecializedJSONEncoder, self).default(o)

Y luego puedes configurarlo en tu Flask instancia:

app.json_encoder = SpecializedJSONEncoder

Ahora podrá manejar date s así como datetime s.