所以我来管理弗拉斯克到目前为止,我已经能够用JavaScript获取我的Python脚本的输出(它以JSON格式返回股票和价格)。
现在我尝试使用jQuery将这些JSON数据转换为HTML表格。不幸的是,我不是最好的JavaScript。我通常喜欢尽可能多地使用Python,但我需要一些帮助才能实现这个结果。
prices端点返回json如下:
[{'0.1': '1387'}, {'0.1': '6060'}, {'0.2': '7000']}
对于最终的结果,我想用jquery将这些信息显示到一个表中,所以这个表只在我们有数据之后才出现。同样对于重复的价格,我想把库存加在一起,就像这样:
Price | Stock
0.1 | 7447
0.2 | 7000
我的代码:
{% extends "_base.html" %}
{% block content %}
{% if current_user.is_authenticated %}
<h3 class="text-center">Welcome {{current_user.email}}! {{current_user.balance}}</h3>
{% else %}
<h3 class="text-center">Price List</h3>
{% endif %}
<br>
<div class="form-group">
<form action="" method="post">
<div class="input-group mb-3-center" style="display: flex;justify-content: center;">
<div class="input-group-prepend">
<label for="inputsm">Country</label>
<br>
<select class="selectpicker" data-live-search="true" id="country" onchange="update()">
<option value="select">Select a country...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<br>
<br>
<label for="inputsm">Service</label>
<br>
<select class="selectpicker" data-live-search="true" id="service" onchange="update()">
<option value="select">Select a service...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<br>
<br>
<label for="inputsm">Price</label>
<span class="input-group-text" style="font-size: medium;">$</span>
<br>
<label for="inputsm">Stock</label>
<span class="input-group-text" style="font-size: medium;">-</span>
<br>
</div>
</div>
</form>
</div>
<div id="table">
<table>
<tbody>
<th>Price</th>
<th>Stock</th>
</tbody>
</table>
</div>
<script>
function update() {
const countrySelect = document.getElementById('country').value;
const serviceSelect = document.getElementById('service').value;
if (countrySelect != 'select' && serviceSelect != 'select') {
async function logJSONData(service,country) {
const settings = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
}
};
const response = await fetch("http://localhost/prices?service="+service+"&country="+country, settings);
const jsonData = await response.json();
console.log(jsonData);
}
logJSONData(serviceSelect,countrySelect);
$(table).find('tbody').append("<tr><td>jsonData</td></tr>");
}
}
</script>
{% endblock %}
1条答案
按热度按时间m528fe3b1#
要使用jQuery在HTML表中显示JSON数据,您可以使用以下方法:
将一个空的
<table>
元素添加到HTML文件中您希望表格显示的位置:现在,您可以使用jQuery获取JSON数据并动态填充表。在
<script>
标签中添加以下JavaScript代码:确保将 AJAX URL中的
'/prices'
替换为与返回JSON数据的Flask端点相对应的适当URL。使用此代码,当页面加载时,jQuery脚本将从指定的URL获取JSON数据。然后,它将计算每个唯一价格的总库存,并相应地用价格和库存填充
<table>
。注意:确保Flask端点
/prices
以正确的格式返回JSON数据,如示例所示。