liste du dictionnaire dans le modèle jinja
Comment parcourir la liste des dictionnaires dans le modèle jinja?
list1=[{"username": "abhi","pass": 2087}]
return render_template("file_output.html",lis=list1)
Dans le modèle
<table border=2>
<tr>
<td>
Key
</td>
<td>
Value
</td>
</tr>
{% for lis1 in lis %}
{% for key in lis1 %}
<tr>
<td>
<h3>{{key}}</h3>
</td>
<td>
<h3>{{lis1[key]}}</h3>
</td>
</tr>
{% endfor %}
{% endfor %}
</table>
Le code ci-dessus divise chaque élément en plusieurs
Valeur Clé [
{
"
U
S
E ...
J'ai testé la boucle imbriquée ci-dessus dans un script Python simple et cela fonctionne bien mais pas dans le modèle jinja.
3 réponses
Données:
parent_dict = [{'A':'val1','B':'val2'},{'C':'val3','D':'val4'}]
Dans Jinja2 itération:
{% for dict_item in parent_dict %}
{% for key, value in dict_item.items() %}
<h1>Key: {{key}}</h1>
<h2>Value: {{value}}</h2>
{% endfor %}
{% endfor %}
Remarque:
Assurez-vous d'avoir la liste des éléments dict.Si vous obtenez UnicodeError
peut être la valeur à l'intérieur du dict contient le format unicode. Ce problème peut être résolu dans votre views.py
si le dict est unicode
objet, vous devez encoder dans utf-8
En tant que sidenote à la réponse de @Navaneethan, Jinja2
est capable de faire des sélections d'éléments "régulières" pour la liste et le dictionnaire, étant donné que nous connaissons la clé du dictionnaire, ou l'emplacement des éléments dans la liste.
Données:
parent_dict = [{'A':'val1','B':'val2', 'content': [["1.1", "2.2"]]},{'A':'val3','B':'val4', 'content': [["3.3", "4.4"]]}]
Dans Jinja2 itération:
{% for dict_item in parent_dict %}
This example has {{dict_item['A']}} and {{dict_item['B']}}:
with the content --
{% for item in dict_item['content'] %}{{item[0]}} and {{item[1]}}{% endfor %}.
{% endfor %}
La sortie rendue:
This example has val1 and val2:
with the content --
1.1 and 2.2.
This example has val3 and val4:
with the content --
3.3 and 4.4.
{% for i in yourlist %}
{% for k,v in i.items() %}
{# do what you want here #}
{% endfor %}
{% endfor %}