Django Template Language (DTL) là engine mặc định, an toàn theo design: không cho gọi function tuỳ ý từ template, auto-escape HTML, cú pháp {{ var }} / {% tag %}. Jinja2 linh hoạt hơn — gọi được Python expression đầy đủ, có macro, render nhanh hơn.
Chọn DTL nếu team không cần logic phức tạp trong template (đúng tinh thần Django: logic ở view, template chỉ hiển thị). Chọn Jinja2 khi cần macro mạnh hoặc đã quen từ Flask. Có thể đăng ký cả 2 engine cùng lúc qua TEMPLATES setting, mỗi engine có folder riêng.
django
{# DTL #}
<ul>
{% for p in posts %}
<li>{{ p.title }} — {{ p.published_at|date:"d/m/Y" }}</li>
{% endfor %}
</ul>