Django

Уроки Python Django / Создание сайта

12 уроков 22 задания Справочник Компилятор

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

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


PythonBootstrap

Язык 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 "ПУТЬ К ФАЙЛУ" %}

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

django-jinja-app.zip Необходима подписка!

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

Исходный код

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

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

Загрузка...

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

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

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

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


PythonBootstrap

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