gpt4 book ai didi

python - 在 Flask 中使用 Jinja2 获取嵌套的字典项

转载 作者:太空狗 更新时间:2023-10-29 17:24:28 24 4
gpt4 key购买 nike

对于这个带有这个 Flask Controller 的字典

projects = {
'life-calc':{'url':'life-calc',
'title': 'Life Calculator'},
'text-game':{'url':'text-game',
'title':'Text Adventure'},
'fill-it-up':{'url':'fill-it-up',
'title':'Fill It Up'},
'rock-paper-scissors':{'url':'rock-paper-scissors',
'title':'Rock, Paper, Scissors'},
'bubble-popper':{'url':'bubble-popper',
'title':'Bubble Popper'}
}


@app.route('/')
def index():
return render_template("index.html",
projects = projects)

和模板本身

    <h1>
List of My Projects
</h1>

<ol>
<li>
<a href = "life-calc">Life Calculator</a>
</li>
<li>
<a href = "text-game">Adventure Game</a>
</li>
<li>
<a href = "fill-it-up">Fill It Up</a>
</li>
<li>
<a href = "rock-paper-scissors">Rock Paper Scissors</a>
</li>
<li>
<a href = "bubble-popper">Bubble Popper</a>
</li>
</ol>
<p>test section below</p>
<ol>
{% for project in projects %}
<li><a href = "{{ project['url'] }}">{{ project['title'] }}</a> </li>
{% endfor %}
</ol>

{% endblock %}

如何访问字典中的项目以打印我的项目列表,就像在测试上方的 HTML 中一样?

我在 Rendering a python dict in Jinja2 / Werkzeug 的帮助下解决了自己的问题模板 block 应该是

{% for key, value in projects.iteritems() %}
<li><a href={{value['url']}}>{{value['title']}}</a></li>
{% endfor %}

但我仍然很好奇如何访问更多的嵌套字典,以及这是否是创建简单菜单的最聪明的方法。

最佳答案

我想你想知道如何访问模板中的嵌套字典

如果你认为我得到了你的问题

一般情况下,这是访问字典中嵌套字典项的方式。

如果可迭代对象嵌套得更深,您只需增加 forloop 深度级别,无论是列表还是字典。

这里我只是以我自己的方式给出一个通用的例子,以供您理解

数据:

parent_dict = {1: {'A':'val1','B':'val2'}, 2:{'C':'val3','D':'val4'}}

jinja2 中的迭代:

{% for key,parent_dict_item in parent_dict.items() %}
{% for key2, nested_value in parent_dict_item.items() %}
<li><a href = "{{ nested_value }}">{{ nested_value }}</a> </li>
{% endfor %}
{% endfor %}

回答:

<li><a href="val1">val1</a> </li>
<li><a href="val2">val2</a> </li>
<li><a href="val3">val3</a> </li>
<li><a href="val4">val4</a> </li>

关于python - 在 Flask 中使用 Jinja2 获取嵌套的字典项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24727977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com