前面做好了選單了,接著需要使用js取得球員名稱並且傳給Flask,Flask再從Firebase取得球員的相關資料傳到前端。
function select_player(){
let p = $("#player").val();
if(p!=='選擇球員'){
$.ajax({
type: 'POST',
url: "/getchartinfo",
data: {"p":p},
success: function (result) {
console.log(result);
}
});
}
}
因為我在加選項時有多加一個選擇球員,所以我必須要先篩選掉,而url我命名為getchartinfo,那Flask端的url也必須同名稱,接著data內容就是取得球員的名稱並且傳給Flask的,最後我先將結果打印出來,之後再進行處理。
接著再回到app.py
,必須創建一個getchartinfo,跟上次的select_team一樣。
app.py
from db_connect import get_hitter_stat
@app.route('/getchartinfo', methods=['POST'])
def send_stat():
player = str(request.form.getlist('p')[0])
stat = get_hitter_stat(player)
if player:
chart_info = stat['月份'].copy()
chart_info['attr'] = ['3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月']
chart_info['name'] = player
return jsonify(chart_info)
else:
return redirect(url_for('index'))
從db_connect那邊import get_hitter_stat(),回傳的資料會是dict,而我document是用選手名稱存的,選手底下會有月份、左右打、通算等等的分類,而因為是dict型態,我可以直接取得,但是我取得的資料中沒有選手名稱,所以我將它copy至新的dict,並把球員名稱加進去,attr則是之後繪圖會用到的。
下一篇會利用這些資料來進行繪圖(使用echart)