![](/img/trans.png)
[英]Iterate through a dataset in Python (Pandas) to only print out the false values:
[英]Iterate through a list in a CGI file and print out values in html
我在cgi文件中有兩個列表:
數字= [0,1,2,3]
字母= [A,B,C,D]
我如何遍歷這些列表並在html中打印出值
理想情況下,我的表格如下所示:
0安
1個
2℃
3天
等等。
這意味着表和行將取決於我的列表有多長時間以及我有多少個列表。 因此,當我遍歷列表時,我還需要知道如何遍歷列表並在html腳本中創建表。
到目前為止,我已經做到了:
print'''
<html>
<head>
</head>
<body>
<center>
<table border="0" cellspacing="15">
<tr>
<td align="center" style="font-size:1.25em;">
<p class="sansserif"> <b> Number: %d </b> <br>
Letter: %s </p>
</td>
</tr>
</table>
</center>
</body>
</html>'''%(Number, Letter)
但這確實不是遍歷列表的過程,我只知道列表的大小,並且已經完成了必要的代碼。 而且這只是打印出來:
0
一種
在表格的單元格內
有兩種選擇
您嘗試按%
創建結果內容的方法正朝着這個方向發展。
但是,由於存在循環(輸出中有行),並且%
和string.format
都不支持循環,因此您必須在代碼中創建此“循環內容”,最后將其嵌入到結果頁面中。
bigtempl = '''<html>
<head>
</head>
<body>
<center>
<table border="0" cellspacing="15">
{rows}
</table>
</center>
</body>
</html>'''
rowtempl = """
<tr>
<td align="center" style="font-size:1.25em;">
<p class="sansserif"> <b> Number: {number:d} </b> <br>
Letter: {letter} </p>
</td>
</tr>
"""
numbers = [0, 1, 2, 3]
letters = ["A", "B", "C", "D"]
lst = zip(numbers, letters)
rows = [rowtempl.format(number=number, letter=letter) for number, letter in lst]
rows = "".join(rows)
wholepage = bigtempl.format(rows=rows)
print wholepage
有很多軟件包,可以根據模板和數據結構生成內容。 這些通常允許循環。
我曾經決定繼續使用jinja2
,對此我感到滿意。 在Jinja2中,您的任務如下所示:
import jinja2
templ = '''<html>
<head>
</head>
<body>
<center>
<table border="0" cellspacing="15">
{% for number, letter in lst %}
<tr>
<td align="center" style="font-size:1.25em;">
<p class="sansserif"> <b> Number: {{number}} </b> <br>
Letter: {{letter}} </p>
</td>
</tr>
{% endfor %}
</table>
</center>
</body>
</html>'''
numbers = [0, 1, 2, 3]
letters = ["A", "B", "C", "D"]
lst = zip(numbers, letters)
template = jinja2.Template(templ)
print template.render(lst=lst)
其他模板解決方案以非常相似的方式執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.