Уроки Django

Урок #4 - Шаблонизатор Jinja (Дзиндзя)

Урок #4 - Шаблонизатор Jinja (Дзиндзя)

Язык Python имеет отличный шаблонизатор, который называется Jinja. В ходе этого урока мы научимся работать с Jinja и научимся создавать и выводить блоки HTML кода в шаблонах HTML страниц.

Видеоурок

С давних пор программисты стараются отделить функциональную часть сайта от визуальной. На решение этой проблемы были созданы различные шаблонизаторы, которые выполняют роль отделения одной части сайта от другой. В языке Питон такой шаблонизатор называется Jinja.

Возможности этого шаблонизатора достаточно большие. Он способен не просто выводить HTML код, но также выполнять некоторые задачи Python, например: проверка условий, вывод через цикл, создание переменных и много других полезных вещей.

Ранее для вывода информации мы использовали HttpResponse, но это совсем не правильный подход к созданию сайтов. Вместо простого HTML мы будем использовать метод render, который позволяет выводить HTML-шаблон. 

В качестве параметров мы должны передать обязательный параметр request, а также указать месторасположение файла с шаблоном.

Все шаблоны хранятся в различных приложениях в папке templates. Django автоматически объединяет всех их в одну папку. Поэтому, если у вас будут два файла с одинаковым именем, то это вызовет ошибку. Чтобы избежать этого стоит помещать все шаблоны в еще одну дополнительную папку, которую стоит называть по имени вашего приложения.

Далее можно создать некий HTML файл, в который поместить немного Jinja логики:
<body>
   {% block content %}
   {% endblock %}
</body>
Мы можем заменить содержимое block content на какой-либо другой файл. Для этого в другом файле необходимо указать что мы наследуем этот HTML файл и указать чем конкретно мы заменим содержимое:
{% extends "ПУТЬ К HTML ФАЙЛУ" %}

{% block content %}
<div>Здесь код, который будет добавлен</div>
{% endblock %}
Кроме того, мы можем создавать небольшие кусочки кода и встраивать их в другие шаблоны. Для таких кусочков лучше всегда создавать отдельную папку, которую можно назвать как includes. В ней можно создать простой HTML файл с небольшой Jinja разметкой:
{% block content %}
<div>Здесь код, который будет добавлен</div>
{% endblock %}
Для подключения таких файлов используйте директиву include:
{% include "ПУТЬ К ФАЙЛУ" %}

Материалы для курса

Чтобы скачивать материалы к видеокурсам необходимо оформить подписку на сайт

Исходный код

Весь код будет доступен после подписки на проект!

Онлайн редактор кода

Загрузка...

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Также стоит посмотреть

Изучение Python до профи / Основы, Django, TKinter
Уроки Python для начинающих
21 урок
Создание игры на Python 3 с PyGame
5 уроков