2016-09-05 2 views
-1

Ich versuche Variablen in meiner index.html Datei zu aktualisieren. Ich werde einen Thread mit einer Schleife in Python laufen, aber ich möchte eine Möglichkeit, meine unten aufgeführten jinja2 Tabelle zu aktualisieren, um alle x Sekunden zu aktualisieren, genau wie wenn Sie PHP und AJAX verwenden würden.Aktualisieren von Jinja2 Variablen alle X Sekunden - Python Flask

Hier ist mein Jinja2 Code:

<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

und wo ist deine Frage? – Julien

Antwort

1

Sie werden dort einige Javascript benötigen.

Entweder Ajax-Anfragen oder Websockets, obwohl Ajax einfacher sein könnte.

Verwenden Sie einfach Javascript setInterval() mit einer Ajax-Anfrage.

Ich würde empfehlen, eine Bibliothek zu verwenden, vielleicht jquery, da es sehr einfach ist.

$.get("/auto_refresh", function(data) { 
    alert("Data Loaded: " + data); 
}); 

Beachten Sie, dass jinja2 ist nur für das Templat, dass die jinja Vorlagen an einem gewissen Punkt bedeutet in HTML/CSS übersetzen lassen. So können Sie mit Ajax spielen wie bei der Verwendung von PHP.

0

Jinja-Variablen werden bei der Renderzeit der Vorlage generiert. Es gibt keine Möglichkeit, sie programmatisch zu aktualisieren, ohne JavaScript zu verwenden.

Von the docs (Hervorhebung von mir):

A [Jinja] Vorlage enthält Variablen und/oder Ausdrücke, , die mit Werten ersetzt werden, wenn eine Vorlage gemacht wird; und Tags, die die Logik der Vorlage steuern. Die Template-Syntax ist stark von Django und Python inspiriert.