Loops with Jinja

Jinja provides control structures that allow us to loop through lists while rendering the template.

For loops start with {% for my_item in my_collection %} and end with {% endfor %}. Here my_item is a loop variable that will be taking values as we go over the elements. And my_collection is the name of the variable holding reference to the iterated collection.

@app.route("/articles")
def articles():
    articles = [
        {"title": "article 1", "url": "https://example.com/article-1"},
        {"title": "article 2", "url": "https://example.com/article-2"},
        {"title": "article 3", "url": "https://example.com/article-3"}
    ]

    return render_template("article_list.html", articles = articles)ython
{% for article in articles %}
<p>
  <a href="{{article.url}}">{{ article.title|capitalize }}</a>
</p>
{% endfor%}

Last updated