🧾 Django Template Syntax & Tags – Control HTML with Django Logic
🧲 Introduction – Why Learn Django Template Syntax?
Django’s template engine allows you to build dynamic HTML pages that are rendered using context data passed from views. With simple syntax and powerful template tags, you can loop through data, apply logic, reuse components, and cleanly separate business logic from presentation.
🎯 In this guide, you’ll learn:
- The syntax basics of Django templates
- How to use variables and control statements like
if,for - How to add comments and include other templates
- How to maintain clean, modular HTML using template tags
📘 Topics Covered
| 🔹 Topic | 📄 Description |
|---|---|
| 🧾 Django Syntax | Basic structure and rendering rules in Django templates |
| 📦 Django Variables | Display dynamic values in HTML templates |
| 🏷️ Django Tags | Use built-in {% %} tags for logic and structure |
| 🔀 Django If Else | Add conditional logic inside templates |
| 🔁 Django For Loop | Loop through querysets and lists in HTML |
| 💬 Django Comment | Add comments that don’t render in HTML output |
| 📄 Django Include | Reuse common layouts by including other templates |
🧾 Django Syntax
The Django template syntax revolves around three main elements:
{{ variable }}– Output a variable’s value{% tag %}– Run template logic (e.g., for loops, conditions){# comment #}– Write invisible notes for developers
💡 Templates live inside a templates/ folder in your app directory and are rendered using the render() function in views.
📦 Django Variables
You can display data in your template using double curly braces:
<h2>Hello, {{ user.username }}!</h2>
Variables come from the context dictionary passed in the view:
def dashboard(request):
return render(request, 'dashboard.html', {'user': request.user})
🏷️ Django Tags
Tags are special instructions that perform actions:
{% for item in list %}...{% endfor %}{% if condition %}...{% endif %}{% include 'header.html' %}{% block content %}...{% endblock %}
These tags make your HTML dynamic and modular.
🔀 Django If Else
Use {% if %} to conditionally display content:
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}</p>
{% else %}
<p>Please log in.</p>
{% endif %}
✅ Nest conditions or use elif as needed.
🔁 Django For Loop
Iterate over querysets or lists:
<ul>
{% for post in posts %}
<li>{{ post.title }}</li>
{% endfor %}
</ul>
🔄 Add {% empty %} inside the loop for no results:
{% empty %}
<p>No posts found.</p>
💬 Django Comment
Use {# ... #} to write comments inside templates:
{# This is a developer comment #}
📝 Comments are invisible in the browser and ignored during rendering.
📄 Django Include
Include reusable HTML components:
{% include 'navbar.html' %}
📦 This keeps your templates DRY (Don’t Repeat Yourself) and well-organized.
📌 Summary – Recap & Next Steps
Django’s template syntax allows you to create powerful and dynamic web pages with clean separation between logic and layout. Using tags, variables, and includes, you can build scalable templates with reusable structure and readable syntax.
🔍 Key Takeaways:
- 🧾 Use
{{ variable }}to output data - 🔁 Control flow using
{% for %}and{% if %}blocks - 📄 Include reusable parts for cleaner code
- 💬 Comment your templates to enhance maintainability
⚙️ Mastering the template language prepares you for scalable UI development in Django apps.
❓ FAQs – Django Template Syntax & Tags
❓ What is the purpose of Django templates?
✅ Templates control what HTML is displayed and allow dynamic data to be injected from views.
❓ Can I use Python code inside Django templates?
✅ No. Django templates are intentionally limited. Use logic in views and pass results via context.
❓ How do I reuse template components?
✅ Use {% include 'file.html' %} or create base.html and extend it using {% block %}.
❓ Are template tags customizable?
✅ Yes, you can create custom template tags and filters using the templatetags module.
❓ How do I debug template variables?
✅ Use {{ variable|default:'Not Found' }} or check context in your view function.
Share Now :
