我有一个Flask应用程序,我有一个收集一些用户输入的表单。然后,该输入作为JSON数据通过AJAX调用传递给我的Python脚本中的函数。
此函数调用API,获取一些新数据,然后返回重定向URL到AJAX调用。成功后,AJAX会使用window.location.href重定向到这个新模板。
我尝试将第一个视图函数the_search传递给第二个视图函数,然后渲染相应的模板,但不幸的是,这并没有成功。我也尝试将数据设置为会话变量,然后在模板中访问它,但这似乎也不起作用。
我的问题
如何在重定向模板results.html中访问变量'response'?
AJAX脚本
...
$.ajax({
type: 'POST',
url: '/the_search',
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
success: function(data, status) {
window.location.href = data['website'];
},
error: function() {
console.log('there was an error');
}
})
...
Python脚本
@app.route('/the_search', methods=("POST", 'GET'))
def the_search():
data = json.loads(request.data)
lat = data['latitude']
longitude = data['longitude']
response = unirest.get("https://zilyo.p.mashape.com/search?latitude={}&longitude={}".format(lat, longitude),
headers={
"X-Mashape-Key": "k6HBYxvy88mshQ6Yg1xPVuv7Vg9Np1GZj7IjsnPxploykdpaHA",
"Accept": "application/json"})
session['search_results'] = response.body
return jsonify({'website': '/results'}), 200
@app.route('/results', methods=('POST', 'GET'))
def results():
#How can I pass the_search view function to here while still having access to the response data
print session['search_results']
return render_template('results.html')