Gunakan jsonify
bawaan Flask
fungsi, karena sudah diperluas untuk bekerja dengan tanggal
:
from Flask import jsonify
@app.route('/temp')
def temp():
# Load database results
# and then ...
return jsonify(data=cur.fetchall())
Data akan dikembalikan sebagai objek dengan satu kunci (data
) yang berisi larik baris (yang akan direpresentasikan sebagai larik atau objek tergantung pada fetchall
apa mengembalikan baris sebagai).
Jika Anda perlu membuat lebih banyak jenis serial (seperti dalam kasus Anda, Anda mendapatkan kembali date
daripada datetime
contoh, Anda harus mengganti json_encoder
Flask
properti dengan subkelas JSONEncoder
yang tahu bagaimana menangani tipe Anda:
class SpecializedJSONEncoder(JSONEncoder):
def default(o):
if isinstance(o, date):
return date.strftime("%Y-%m-%d")
else:
super(SpecializedJSONEncoder, self).default(o)
Dan kemudian Anda dapat mengaturnya di Flask
contoh:
app.json_encoder = SpecializedJSONEncoder
Anda sekarang dapat menangani date
s serta datetime
s.