2016-12-15 6 views
0

Ich gebe eine HTML-Datei in Python aus. Innerhalb des HTML habe ich eine Tabelle mit den Schlüsseln und Werten aus dem Wörterbuch in der Python-Datei und ich denke, ich muss eine Schleife verwenden, um die Tabellendaten in diesem Fall anzuzeigen. Aber ich bin verwirrt über die Verwendung von Python HTML-Inhalt auszugeben. Ich habe versucht, <%% mit>, die angeblich Python-Code in HTML erlauben, aber es hat nicht funktioniert ..Python - mit "for" -Schleife HTML-Inhalt ausgeben

message = """ 
     <html> 
     <body> 
     <h1>Counting words</h1> 
     <table border = 1> 
     <tr> 
     <th>Words</th> 
     <th>Count</th> 
     </tr> 
     <% for key, value in wordDict.items(): %> 
      <% if value >= 10: %> 
       <tr> 
       <td><% print(key) %></td> 
       <td><% print(value) %></td> 
       </tr> 
       <% end %> 
      <% end %> 
     </table> 
     </body> 
     </html>""" 
     f.write(message) 
     f.close() 
+2

für u singen <% %> Syntax, müssen Sie zuerst Vorlage-Engine für Python installieren. http://jinja.pocoo.org/ – Harsha

+0

@ HarshaBiyani gibt es sowieso, dass ich es ohne <% %> Syntax tun kann? – Yolanda

+0

nein .. Sie müssen jede 1 Vorlagensprache oder jedes Framework verwenden. – Harsha

Antwort

0

Sie haben einen Syntaxfehler. Wenn Sie Joomla verwenden, müssen Sie Tags haben, die wie folgt aussehen: <% endfor%> und <% endif%> und ich bin nicht sicher über die : nach der for-Schleife, versuchen Sie es, wenn es nicht funktioniert, spielen Sie herum mit ihm

message = """ 
    <html> 
    <body> 
    <h1>Counting words</h1> 
    <table border = 1> 
    <tr> 
    <th>Words</th> 
    <th>Count</th> 
    </tr> 
    <% for key, value in wordDict.items() %> 
     <% if value >= 10 %> 
      <tr> 
      <td><% print(key) %></td> 
      <td><% print(value) %></td> 
      </tr> 
     <% endif %> 
    <% endfor %> 
    </table> 
    </body> 
    </html>""" 
    f.write(message) 
    f.close() 
1

Sie können mit String-Formatierung dynamische Werte in Zeichenfolge einzufügen:

message = """ 
      <html> 
      <body> 
      <h1>Counting words</h1> 
      <table border = 1> 
      <tr> 
      <th>Words</th> 
      <th>Count</th> 
      </tr> 
      {0} 
      </table> 
      </body> 
      </html>""" 

wordDict = {1: 'a', 2: 'b', 3: 'c'} 

insert = [] 
for k, v in wordDict.items(): 
    insert.append("<tr><td>{0}</td><td>{1}</td></tr>".format(k, v)) 
print(message.format(''.join(insert))) 

Ausgang:

<html> 
    <body> 
    <h1>Counting words</h1> 
    <table border = 1> 
    <tr> 
    <th>Words</th> 
    <th>Count</th> 
    </tr> 
    <tr><td>1</td><td>a</td></tr><tr><td>2</td><td>b</td></tr><tr><td>3</td><td>c</td></tr> 
    </table> 
    </body> 
    </html>