# 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.

```python
@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
```

```python
{% for article in articles %}
<p>
  <a href="{{article.url}}">{{ article.title|capitalize }}</a>
</p>
{% endfor%}
```
