对于这个带有 Flask 控制器的字典
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中得到了帮助解决了我的问题。模板块应该是:{% for key, value in projects.iteritems() %}
<li><a href={{value['url']}}>{{value['title']}}</a></li>
{% endfor %}
但我仍然好奇如何访问更深层次的字典,以及是否这是创建简单菜单的最聪明方法。
{% for k, v in parent_dict|dictsort %}
的东西,但是使用这种方法我无法使用dictsort
。有什么想法吗? - DJGrandpaJ模板过滤器
来实现它。在Django模板、jinja2等中都可以使用。参考 - Nava