J'ai un modèle HTML avec une boucle Flask Jinja pour elle qui génère une table et ressemble à:
<tbody>
{% for segment in segment_details %}
<tr>
<td>{{segment}}</td>
<td>{{segment_details['{{segment}}']}}</td>
</tr>
{% endfor %}
</tbody>
J'essaie de parcourir un document de longueur/clés variables et de présenter chaque ligne du tableau comme clé et valeur. Dans mon Python j'ai ce qui a la réponse souhaitée dans le Shell:
for item in segment_details:
print(item, segment_details[item])
Mais dans Flask j'obtiens l'élément listant correctement toutes les lignes sauf le
{{segment_details['{{segment}}']}}
Ne produit aucune valeur, j'ai essayé avec et sans les guillemets simples. Est-ce possible?
Voici où se trouve votre erreur:
<td>{{segment_details['{{segment}}']}}</td>
Il n'y a pas besoin de {{ }}
à l'intérieur. Cela devrait être juste:
<td>{{segment_details[segment]}}</td>
Pour plus d'informations, consultez la documentation de Jinja . Lorsque vous écrivez une instruction (if
, for
) dans Jinja2
tu utilises {% statement %}
mais lorsque vous accédez à une variable, utilisez simplement {{ variable }}
.
c'est une solution
<tbody>
{% for key, segment in segment_details.items() %}
<tr>
<td>{{ key }}</td>
<td>{{ segment }}</td>
</tr>
{% endfor %}
</tbody>