Codecademy Logo


Django Template Language

The Django Template Language, DTL, interpolates Python into HTML.

{% block titl e %}
{% endlbock %}
{% block content %}
{% endblock %}


Templates are what users see on a web page.

<h1>Page title</h1>

Template Name Space

Templates are stored in .

Template Tags

Template tags are used to inject Python content.

{{% block content %}}
{{% endblock %}}

Template Blocks

Content tags can be used to extend templates to reduce repeated code.

<!DOCTYPE html>
{% block headBlock %}
{% endblock %}
<h1>Hello World!</h1>
{% block content %}
{% endblock %}

Base Templates

A base template can be used as the basis for other templates using the extends tag.

{% extends "base.html" %}

Static Files

Static files, such as CSS, images, and JavaScript files, are placed in a separate location in the project— /static/ by default.

└── myProject/
└── myapp/
└── static/

Loading Static Files

Templates can load static files using the `{% load static %} tag in the header of the HTML file. Specific files can be loaded by specifying the exact file path as an argument.

{% load static "custom.css" %}

Template Variables

Variables can be displayed using variable tags.

{{ variable_name }}

Conditional Tags

Templates can include logic using if statements.

{% if conditional_variable %}
{% endif %}

for-in Loops

Template variables can be iterated over using for-in loops inside template tags.

{% for item in dictionary %}
<li>{{ item.value }}</li>
{% endfor %}


URLs can be linked using the url tag.

{% url "some-other-page" %}

Passing Variables in URL Tags

URL tags can include arguments to pass between webpages.

{% url ""blog-view"" %}

Template Filters

Filters can be applied with the | symbol.

{{ variable_name | filter_name }}

Filter Arguments

Arguments can be passed to filters using the : symbol after the filter name.

{{ variable_name | filter_name:"argument"}}

Sorting Dictionaries

Dictionaries can be sorted using the dictsort filter.

{{ dictionary_name | dictsort:"key_name"}}

Datatypes in Filters

Some filters require variables of a certain data type.

{{ date_time | time"H": "i" }}

Learn More on Codecademy