Python Flask获取要显示的json数据

我目前正在尝试显示每5秒更新一次的值列表到sqlite数据库。

我可以使用以下代码将结果转换为JSON格式:

@app.route('/_status', methods= ['GET', 'POST']) def get_temps(): db = get_db() cur = db.execute('select sensor_name, temp from cur_temps ORDER BY sensor_name') #cur_temps = cur.fetchall() return jsonify(cur.fetchall()) 

通过浏览器导航到网页返回

 { "BoilerRoom": 26.44, "Cylinder1": 56.81, "Cylinder2": 39.75, "Cylinder3": 33.94 } 

我想定期在网页上更新这些数据,而无需再次加载整个页面。 我陷入了第一道障碍,无法显示实际数据。 我正在使用的HTML代码是

 {% extends "layout.html" %} {% block body %}  $(function() { $("#submitBtn").click(function() { $.ajax({ type: "GET", url: $SCRIPT_ROOT + "_status", contentType: "application/json; charset=utf-8", success: function(data) { $('#Result').text(data.value); } }); }); });  
{% endblock %}

我从示例中选择了代码,但我需要一个指针。

解决了!!

新的HTML代码

  function get_temps() { $.getJSON("_status", function (data) { $('#Cyl1').text(data.Cylinder1) $('#Cyl2').text(data.Cylinder2) $('#Cyl3').text(data.Cylinder3) $('#BRoom').text(data.BoilerRoom); } ); } setInterval('get_temps()', 5000);  
Location Temperature
Cylinder Top
Cylinder Middle
Cylinder Bottom
Boiler Room

你的AJAX调用应该自动检测JSON响应,但明确地告诉jQuery它没有坏处:

 $.ajax({ type: "GET", url: $SCRIPT_ROOT + "_status", dataType: 'json', success: function(data) { $('#Result').text(data); } ); 

contentType参数仅用于POST请求,告诉服务器您发送的数据类型。

data对象包含返回的Flask jsonify()响应; 在这种情况下,它将是一个带有BoilerRoom等键的JavaScript对象。

由于您是通过GET请求加载JSON,因此您也可以使用jQuery.getJSON()方法 :

 $.getJSON( $SCRIPT_ROOT + "_status", function(data) { $('#Result').text(data); } ); 

这与$.ajax()调用完全相同,但您可以省略typedataType参数, urlsuccess参数只是位置元素。