2016-03-30 13 views
0

Ich schrieb eine Anwendung, wo ein Benutzer eine Nummer eingibt, und die Anwendung berechnet die Pythagoras Tripel dieser Zahl.Python-Liste von Listen in einer Jinja-Vorlage anzeigen

Ich habe Probleme, die Tripel in eine Liste zu setzen und sie in einer HTML-Tabelle anzuzeigen. Server Side Methode:

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)) 

Hier ist eine Ausgabe der Liste der Listen als 15

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

Jinja Vorlage eingegeben wird:

<!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> 

Die html zeigt nur die Worte "val" wo die Zahlen sein sollten.

+0

verwenden sollte ich glaube, Sie müssen nur val ersetzen mit {{val}} in der for-Schleife. –

+0

und ähnlich ersetzen '

Triple

' mit '

{{Triple}}

' ('tho nehme ich an, das ist nur zum Debuggen) –

Antwort

0

Sein in Ihrem Template-Code Typo nur Sie <td>{{val}}</td> statt <td>val</td>