Sử dụng jsonify
tích hợp sẵn của Flask
, vì nó là đã được mở rộng để hoạt động với ngày tháng
:
from Flask import jsonify
@app.route('/temp')
def temp():
# Load database results
# and then ...
return jsonify(data=cur.fetchall())
Dữ liệu sẽ được trả về dưới dạng một đối tượng với một khóa duy nhất (data
) chứa một mảng các hàng (sẽ được biểu thị dưới dạng mảng hoặc đối tượng tùy thuộc vào fetchall
gì trả về các hàng dưới dạng).
Nếu bạn cần sắp xếp nhiều loại hơn (như trong trường hợp của bạn, bạn đang lấy lại date
thay vì datetime
các trường hợp, bạn sẽ cần ghi đè json_encoder
của Flask
thuộc tính có lớp con của JSONEncoder
biết cách xử lý các loại của bạn:
class SpecializedJSONEncoder(JSONEncoder):
def default(o):
if isinstance(o, date):
return date.strftime("%Y-%m-%d")
else:
super(SpecializedJSONEncoder, self).default(o)
Và sau đó, bạn có thể đặt nó trên Flask
của mình ví dụ:
app.json_encoder = SpecializedJSONEncoder
Bây giờ bạn sẽ có thể xử lý date
s cũng như datetime
s.