我有一个Flask / JavaScript应用程序,我在其中输入表单的输入并将它们传递给Flask应用程序以从GoogleMaps API检索距离信息,然后将生成的JSON返回给JavaScript。这对单个工作正常原点/目的地的实例。
我想收到两个源/目标输入并返回我的JavaScript,但无法弄清楚如何做到这一点。我还在学习,但我觉得我不能简单地在一个函数中返回两个值,所以我希望有人可以看看我的内容,并告诉我最好的方法是什么将两者的JSON都恢复为JavaScript。
@app.route("/", methods=['GET', 'POST'])
def home():
if request.method == 'POST':
# form inputs
origin = request.form.get('origin')
destination = request.form.get('destination')
current_home = request.form.get('current_home')
future_home = request.form.get('future_home')
# current traffic conditions set to now
departure = int(time.time())
# params we pass to the url
current_params = {
'origins': origin,
'destinations': destination,
'mode':'driving',
'units':'imperial',
'departure_time' : departure,
'traffic_model':'best_guess',
'avoid':'tolls'
}
future_params = {
'origins': future_home,
'destinations': destination,
'mode':'driving',
'units':'imperial',
'departure_time' : departure,
'traffic_model':'best_guess',
'avoid':'tolls'
}
# api call
current_url = 'https://maps.googleapis.com/maps/api/distancematrix/json?'+ urllib.urlencode(current_params)
future_url = 'https://maps.googleapis.com/maps/api/distancematrix/json?'+ urllib.urlencode(future_params)
current_response = requests.get(current_url)
future_response = requests.get(future_url)
# return json
return jsonify(current_response.json())
return jsonify(future_response.json())
return render_template('index.html')
if __name__ == "__main__":
app.run(debug=True)
答案 0 :(得分:1)
您需要将两个值都包装在dict中,然后返回dict。
payload = {
"current_response": current_response,
"future_response": future_response
}
return jsonify(payload)