Django templates generate HTML from variables and tags: {{ variable }} displays a value while escaping it, {% if %} and {% for %} control the rendering, and filters like |date transform it. They separate presentation from view logic.
Example
{% for a in articles %}
<li>{{ a.titre }}</li>
{% endfor %}