繁体   English   中英

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

[英]Passing variable to Flask from Javascript and then loading template

在我的Flask应用程序中(我对Flask相当陌生),我使用Javascript获取客户的经度和纬度值,然后将格式化的字符串传递给flask视图。 该视图应该将字符串传递给在线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) {
        ;
    }
);  

}

这是烧瓶部分:

@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)

您当前对$.get调用对成功回调没有任何作用

success: function(data) {
  ;
}

data包含render_template('phone.html', location_data=location_dict) 您需要将其添加到页面。

success: function(data) {
  $('#some-selector').html(data);
}

它将用输出替换与#some-selector匹配的元素的内容。 如果输出包含一个新的HTML文档(即,它包装在html标记中),则需要替换整个DOM。 你可以用类似的方法做到这一点

success: function(data) {
  $('html').replaceWith(data);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM