2017-06-01 2 views
0

Ich habe an der dynamischen Erstellung einer Ereignistabelle für eine Anwendung gearbeitet, an der ich gerade arbeite. Ich versuche, die Zeilen dynamisch mit der Template-Logik von Jinja2 zu füllen. Ich benutze Kolben für das Routing und pure.css für das grundlegende CSS-Zeug.Jinja2: Verschachteltes Array/Wörterbuch in HTML-Tabellenzeile kopieren

Meine Daten ist wie folgt gegliedert:

event_data{ device_name:[ {'summary':"", ... 'severity'}, 
          {'summary':"", ... 'severity'}, 
          . 
          . 
          . ] 
      device_name:[ ... ] } 

My Template-Code:

<div style="overflow:auto; height:150px; width:auto; border:1px solid; margin:20px;"> 
     <table class="pure-table"> 
      <thead> 
       <tr> 
        <th>Name</th> 
        <th style="width:30%;">Summary</th> 
        <th>Last Seen</th> 
        <th>First Seen</th> 
        <th>Device Priority</th> 
        <th>Event Class</th> 
        <th>Production State</th> 
        <th>Severity</th> 
       </tr> 
      </thead> 
      <tbody> 
       {% for device in event_data %} 
        {% for event in event_data[device]%} 
         <tr> 
          <td>hello</td> 
          <td>{{ event['summary'] }}</td> 
          <td>{{ event['lastTime'] }}</td> 
          <td>{{ event['firstTime'] }}</td> 
          <td>{{ event['DevicePriority'] }}</td> 
          <td>{{ event['eventClass'] }}</td> 
          <td>{{ event['prodState'] }}</td> 
          <td>{{ event['severity'] }}</td> 
         </tr> 
        {%endfor%} 
       {% endfor %} 
      </tbody> 
     </table> 
    </div> 

ich die Informationen auf meiner Seite mit diesem Anruf von Flask bekommen:

return render_template('app_page.html', event_data=json.dumps(event_data), device_names=devices) 

Ich testete die äquivalente Python-Schleife und es druckte die Informationen vollkommen in Ordnung. Wenn ich es so laufe, kommt es nicht einmal in die innere Schleife, so dass keine neuen Zeilen über die Kopfzeile hinausgehen. Jeder Rat oder Vorschläge sind sehr willkommen!

+0

Ich kann Ihr Problem nicht reproduzieren. Bitte [bearbeiten], um ein [mcve] einzuschließen. – davidism

+0

Ich habe den vollständigen Tabellencode und den entsprechenden Anruf aus der Flasche hinzugefügt. Das ist alles relevante Code. Vielen Dank. – champTheMudkip

Antwort

0

Dumping etwas zu JSON erzeugt eine Zeichenfolge. Sie möchten keine Zeichenfolge, Sie möchten das Diktat, mit dem Sie begonnen haben. Sie tun nichts, was JSON erfordert. Einfach das Diktat ohne übergeben.