Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zwrócić dane z zapytania MySQL w aplikacji Flask?

Użyj wbudowanej funkcji Flask jsonify funkcja, ponieważ jest już rozszerzona do pracy z datami :

from Flask import jsonify

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

Dane zostaną zwrócone jako obiekt z jednym kluczem (date ) zawierający tablicę wierszy (która będzie reprezentowana jako tablice lub obiekty w zależności od tego, co fetchall zwraca wiersze jako).

Jeśli potrzebujesz serializować więcej typów (tak jak w twoim przypadku, otrzymujesz z powrotem date zamiast datetime wystąpień, będziesz musiał zastąpić json_encoder Flask właściwość z podklasą JSONEncoder który wie, jak radzić sobie z twoimi typami:

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

A potem możesz ustawić go na swojej Flask przykład:

app.json_encoder = SpecializedJSONEncoder

Będziesz mógł teraz obsługiwać date s oraz datetime s.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL działa z 127.0.0.1, ale nie działa z localhost?

  2. MYSQL:podobna metoda, podobne słowa — ale nie pokazuj wyszukiwanego słowa

  3. PHP, PDO, MySQL, Uwaga:Próba uzyskania właściwości non-object

  4. Używanie mysql concat() w klauzuli WHERE?

  5. Pokaż rekordy od teraz() do następnych 7 dni w mysql