J'ai essayé:
list1 = [{"username": "abhi", "pass": 2087}]
return render_template("file_output.html", list1=list1)
Dans le modèle:
<table border=2>
<tr>
<td>
Key
</td>
<td>
Value
</td>
</tr>
{% for dictionary in list1 %}
{% for key in dictionary %}
<tr>
<td>
<h3>{{ key }}</h3>
</td>
<td>
<h3>{{ dictionary[key] }}</h3>
</td>
</tr>
{% endfor %}
{% endfor %}
</table>
Le code ci-dessus divise chaque élément en plusieurs caractères:
[
{
"
u
s
e
r
...
J'ai testé la boucle imbriquée ci-dessus dans un simple script Python) et il fonctionne correctement, mais pas dans le modèle Jinja.
parent_dict = [{'A':'val1','B':'val2'},{'C':'val3','D':'val4'}]
{% for dict_item in parent_dict %}
{% for key, value in dict_item.items() %}
<h1>Key: {{key}}</h1>
<h2>Value: {{value}}</h2>
{% endfor %}
{% endfor %}
assurez-vous que vous avez la liste des éléments dict. Si vous obtenez UnicodeError
, 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
Dans la note de @Navaneethan, Jinja2
est capable de faire des sélections "régulières" d’éléments pour la liste et le dictionnaire, étant donné que nous connaissons la clé du dictionnaire ou les emplacements des éléments dans la liste.
parent_dict = [{'A':'val1','B':'val2', 'content': [["1.1", "2.2"]]},{'A':'val3','B':'val4', 'content': [["3.3", "4.4"]]}]
{% 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 %}
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 %}