javascript - 将变量从 Javascript 传递到 Flask,然后加载模板

标签 javascript jquery flask

在我的 Flask 应用程序中(我对 Flask 还很陌生),我使用 Javascript 获取客户端的纬度和经度值,然后将格式化字符串传递到 Flask View 。该 View 应该将字符串传递给在线 API 并获取 JSON 对象。然后它将其转换为字典并在新页面上显示某些值。将 Javasctipt 函数中的变量传递给页面后,我在从 View 加载页面时遇到问题。我知道它返回一个结果(我尝试使用 Javascript 的 alert 显示结果 html),但 returnendered_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)

最佳答案

您当前对 $.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);
}

关于javascript - 将变量从 Javascript 传递到 Flask,然后加载模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30022979/

相关文章:

javascript - 从指令设置 ngModel 时的范围问题

javascript - 使用 jquery 将数据与 ajax 响应进行比较

php - 将 jQuery Image Crop 集成到 Wordpress 中用于头像图片上传

python - celery 工厂功能与进口 celery

javascript - 命名和放置 div

javascript - 阻止用户输入字母并将模型插入数组

jquery - 热得到类型为 'value' 的最后一个元素的 'input' 和某个 'name' 吗?

jquery - Bootstrap 弹出窗口需要单击两次才能打开弹出窗口

python - 导入 flask 企业时没有名为核心的模块

python - Apache + mod_wsgi + flask 应用程序 : "Unable to get bucket brigade for request" error in logs