在jinja模板中显示python列表列表

时间:2016-03-30 17:05:11

标签: python google-app-engine jinja2

我写了一个应用程序,用户输入一个数字,然后应用程序计算该数字的毕达哥拉斯三元组。

我在将三元组放入列表并将其显示在html表中时遇到问题。 服务器端方法:

 def post(self):
    allTriples = []
    c = int(self.request.get('c'))
    print('c: ' + str(c))
    for i in range(1, c):
        for j in range(1, c):
            for k in range(1, c):
                i2 = i*i
                j2 = j*j
                k2 = k*k
                if ((i2 + j2) == k2) and (i < j):
                    singleTriple = []
                    singleTriple.append(i)
                    singleTriple.append(j)
                    singleTriple.append(k)
                    allTriples.append(singleTriple)
    d = {
        'allTriples' : allTriples,
    }
    print(allTriples)
    template = JINJA_ENVIRONMENT.get_template('triples.html')
    self.response.out.write(template.render(d))

这是输入15时列表列表的输出

[[3, 4, 5], [5, 12, 13], [6, 8, 10]]

Jinja模板:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Pythagorean Triples</title>
</head>
<body>
<table>
    <th>A</th>
    <th>B</th>
    <th>C</th>
    {% for triple in allTriples %}
        <p>triple</p>
        <tr>
            {% for val in triple %}
                <td>val</td>
            {% endfor %}
        </tr>
    {% endfor %}
</table>
</body>
</html>

html只显示&#34; val&#34;数字应该在哪里。

1 个答案:

答案 0 :(得分:0)

它只是您模板代码中的拼写错误 您应该使用<td>{{val}}</td>代替<td>val</td>