我正在用Python输出HTML文件。在HTML内部,我有一个表格,显示Python文件中字典中的键和值,我认为在这种情况下我必须使用循环来显示表格数据。但我对使用python输出html内容感到困惑。我尝试过使用< %%>这应该允许在HTML中使用Python代码,但它没有工作..
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()
答案 0 :(得分:1)
您可以使用字符串格式将动态值插入字符串:
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)))
输出:
<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>
答案 1 :(得分:0)
您遇到语法错误。使用Joomla时,您必须拥有如下所示的精加工标签:&lt;%endfor%&gt;和&lt;%endif%&gt;而且我不确定在for循环之后的:,试试这个,如果它不工作,那就玩吧
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()