我刚开始使用带有Jinja2的Python Flask(那些不知道的人的模板系统),并且在模板部分遇到了障碍。
因此,考虑到逻辑和模板分离的概念,我试图删除我发现无法删除的最后一件事:for循环迭代。
我会尽可能地缩小问题范围。
基本上我有这个定义主页的视图:
# front page
def front(): # define front page
i = db.docs.find() # find docs in db and assign to var "i"
docs = [k for k in i] # iterate over "i" vals and assign to docs which is then iterable
return render_template('index.html', docs=docs) # render the "index.html" template and make the "docs" variable available for it
然后我有 index.html (仅包括问题的焦点):
<title> Localhost - Homepage </title>
<div class=doc>
{% for doc in docs %} # iterate over every doc in docs
<h4><a
href="/post/{{ doc.slug }}/">{{ doc.title }} # get the **doc slug** and **doc title**
</a>
</h4>
{% endfor %}
</div>
问题在于这里有没有办法在视图中进行迭代(所有逻辑应该驻留在哪里)并且有一个预定义的val可以在模板中打印(如<div>{{ docs.title }}</div>
)?