我正在尝试更新index.html文件中的变量。我将在python中运行一个带循环的线程但是我想要一种更新下面列出的jinja2表的方法来更新每x秒,就像你使用php和ajax一样。
这是我的Jinja2代码:
<table border=1 id="allTable" class="display">
<tbody id="eliteTable">
<tr><td colspan=9 class=queueheader>Elite (Current SLA: {{ eliteSLA | safe}}%)</td></tr>
<tr><th>Skill</th><th>SLA</th><th>Calls Waiting</th><th>Hold Time</th><th>Staffed</th><th>Avail</th><th>ACW</th><th>Aux</th><th>ACD Calls</th></tr>
{% for row in eliteList %}
{% if row[2]|int > 30 %}
<tr class=longwait>
{% elif row[2]|int > 0 %}
<tr class=waiting>
{% else %}
<tr>
{% endif %}
{% for i in row %}
<td> {{ i | safe }} </td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
答案 0 :(得分:1)
你需要一些javascript。
ajax请求或websockets,虽然ajax可能更简单。
只需将javascript setInterval()
与ajax请求一起使用即可。
我建议使用库,也许是jquery,因为它非常简单。
$.get( "/auto_refresh", function( data ) {
alert( "Data Loaded: " + data );
});
请注意,jinja2仅用于模板化,这意味着在某些时候jinja模板会被翻译成html / css。 因此,您可以像使用PHP时那样使用ajax。
答案 1 :(得分:0)
Jinja变量是在模板渲染时生成的。如果不使用某种类型的javascript,就无法以编程方式更新它们。
来自the docs(强调我的):
[Jinja]模板包含变量和/或表达式,在呈现模板时被值替换;和标签,控制模板的逻辑。模板语法受Django和Python的启发。