将变量从Javascript传递给Flask,然后加载模板

时间:2015-05-04 05:09:06

标签: javascript jquery flask

在我的Flask应用程序中 - 我是Flask的新手 - 我使用Javascript获取客户端的纬度和经度值,然后将格式化的字符串传递给烧瓶视图。该视图应该将字符串传递给在线API并获取JSON对象。然后它将其转换为字典并在新页面上显示某些值。从Javasctipt函数传递变量后,我从视图加载页面时遇到问题。我知道它会返回一个结果(我尝试使用Javascript' alert来显示生成的html),但return rendered_template()由于某种原因没有加载新页面。我想知道这是否有可能实现。感谢。

使用Javascript:

function getLocation(){ 
    if("geolocation" in navigator) {
        navigator.geolocation.getCurrentPosition(transferFile);
    }
}   

function transferFile(position){
    var start = 'lat=';
    var result = start.concat(position.coords.latitude, '&lon=',     position.coords.longitude, '&format=json');
    $.get(
    url="phony",
    data= result, 
    success=function(data) {
        ;
    }
);  

}

这是Flask部分:

@app.route('/phony')
def phony():
    query = request.query_string
    url = <link to API> + query
    location_dict = requests.get(url).json()
    return render_template("phony.html", location_data = location_dict)

1 个答案:

答案 0 :(得分:1)

您对// Reverse Geocoding BasicGeoposition myLocation = new BasicGeoposition { Longitude = position.Coordinate.Longitude, Latitude = position.Coordinate.Latitude }; Geopoint pointToReverseGeocode = new Geopoint(myLocation); 的当前通话对成功回拨中的结果没有任何作用

$.get

success: function(data) { ; } 包含data的输出。您需要将其添加到页面中。

render_template('phone.html', location_data=location_dict)

这会将匹配success: function(data) { $('#some-selector').html(data); } 的元素的内容替换为输出。如果输出包含新的HTML文档(即,它包含在html标记中),那么您将要替换整个DOM。你可以用

之类的东西做到这一点
#some-selector