簡體   English   中英

遍歷CGI文件中的列表並在html中打印出值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM