Pandas ile bir CSV dosyasını analiz eden ve özet bilgiler içeren bir dict üreten bir fonksiyonum var. Sonuçları bir Flask görünümünden yanıt olarak döndürmek istiyorum. JSON yanıtını nasıl döndürebilirim?
@app.route("/summary")
def summary():
d = make_summary()
# send it back as json
Özet verilerini bir JSON yanıtı döndüren jsonify
işlevine aktarın.
from flask import jsonify
@app.route('/summary')
def summary():
d = make_summary()
return jsonify(d)
Flask 0.11'den itibaren, sadece dict değil, herhangi bir JSON serileştirilebilir türü en üst düzey nesne olarak geçirebilirsiniz.
Anahtar kelime argümanlarını flask.jsonify
'e iletin ve bunlar bir JSON nesnesi olarak çıktılanacaktır.
@app.route('/_get_current_user')
def get_current_user():
return jsonify(
username=g.user.username,
email=g.user.email,
id=g.user.id
)
{
"username": "admin",
"email": "admin@localhost",
"id": 42
}
Zaten bir dict'iniz varsa, bunu doğrudan jsonify(d)
olarak iletebilirsiniz.
Kullanıcı tarafından yüklenen bir dosyayı analiz etmek istiyorsanız, Flask quickstart kullanıcılardan nasıl dosya alacağınızı ve bunlara nasıl erişeceğinizi gösterir. Dosyayı request.files
dosyasından alın ve summary fonksiyonuna aktarın.
from flask import request, jsonify
from werkzeug import secure_filename
@app.route('/summary', methods=['GET', 'POST'])
def summary():
if request.method == 'POST':
csv = request.files['data']
return jsonify(
summary=make_summary(csv),
csv_name=secure_filename(csv.filename)
)
return render_template('submit_data.html')
request.filesiçin
'data'` anahtarını HTML formunuzdaki dosya girişinin adıyla değiştirin.