sql >> Databasteknik >  >> RDS >> Mysql

Hur returnerar man data från en MySQL-fråga i en Flask-app?

Använd Flasks inbyggda jsonify funktion, eftersom den är redan utökad för att fungera med datum :

from Flask import jsonify

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

Datan kommer att returneras som ett objekt med en enda nyckel (data ) som innehåller en array av rader (som antingen kommer att representeras som arrays eller objekt beroende på vad fetchall returnerar rader som).

Om du behöver serialisera fler typer (som i ditt fall får du tillbaka date). istället för datetime instanser måste du åsidosätta Flasks json_encoder egenskap med en underklass av JSONEncoder som vet hur man hanterar dina typer:

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

Och sedan kan du ställa in det på din Flask instans:

app.json_encoder = SpecializedJSONEncoder

Du kommer nu att kunna hantera date s samt datetime s.




  1. ASP.net 4.0 Entity Data Model Mysql behandlar inte Mysql Enums rätt

  2. Hur man ansluter till SQL Server med Windows-autentisering från Node.JS med hjälp av mssql-modulen

  3. Laravel uppdatera Eller Skapa med automatisk inkrementell databas

  4. Hur man får en lista över månader mellan två datum i mysql