Для начала необходимо создать пупку где джанго будет искать шаблоны. По умолчанию джанго ищет в шаблоны во всех папок приложения. Эта папка внутри приложения должна называться templates, затем в папке templatesнужно создать еще одну папку с названием приложения. Это сделано для того, что бы избежать коллизей. В это папке создается html файл, который будет шаблоном.
В качестве теста, можно указать заголовок в поле title. И в теле body прописать любую информацию.
В wiews.py в функции нужно вернуть результат обработки запроса. При помощи импортированной функции render, можно отрисовать этот шаблон. В функции пишем return reder(request, ‘путь к шаблону, который нужно отрисовать’)
Для демонстрации динамического отображения данных в шаблонах можно использовать переменные. Переменные позволяют передавать какие либо данные из wiew функции. Например, можно воспользоваться функцией default_timer() из модуля timeit сколько времни запущена система.
Что бы передать данные в шаблон необходимо использовать context при рендере шаблона. В wiew функции, которая обрабатывает запрос создать переменную context(словарь), и этот context должен быть передан в функцию render, т.е. return render(request, ‘путь к шаблону, который нужно отрисовать’, context= context). В context все данные должны приходить в виде ключ – значение.
Ключ – имя как отображать переменную в шаблоне. А значение – что туда передавать.
Например, если мы хотим воспользоваться функцией, для отображении времени сколько запущена система, можно в словаре context указать ключ(переменную, в виде строки) “time_running” и в значении воспользоваться функцией(вызвать ее) default_timer() (from timeit import default_timer). Тогда в contextпридет придет переменная “time_running”, которая значение берет из default_timer().
Переменную “time_running” можно отобразить на странице html файла. Здесь нужно добавить новый блок div. Для того что бы отобразить переменную нужно воспользоваться {{ }}. Например {{ time_running }}.
Теги и фильтры.
При помощи тегов создаются блоки, которые позволяют выполнять циклы, логические операции, обращаться к другим встроенным функциям.
Теги – функции, которые джанго вызывает в шаблон и в них можно передавать дополнительные параметры.
Фильтры– позволяют, выводимые данные модифицировать.
Тег lorem– позволяет заполнить страницу текстом. Например в блоке div указывается через {% lorem 3 p random%}
Наследование шаблонов.
Создается базовый шаблон html. В базовом шаблоне создаются блоки.
Блоки– секции, которые можно переопределять.
{% block имя блока %}
Значения по умолчанию. Какой то текст.
{% endblock%}
В файле html, который наследует. Необходимо в самом начале написать тег: {% extends ‘путь к базовому шаблону’ %}
Тег {% now ‘H:i’ %} – позволяет отобразить текущее время.
{% now ‘l’ as current_weekday %} – текущий день недели, сохраняется в переменную current_weekday. И данную переменную можно вывести при помощи: {{ current_weekday }}
Циклы в django шаблоне.
Для этого нужна коллекция по которой нужно итерироваться. Например в wiew функции создаем такую коллекцию. Данную коллекцию необходимо передать в context в качестве значения. В шаблоне будет создана переменная(ключ) со значением итерируемой коллекции.
Что бы вывести все значения в цикле:
Создаем блок <div> и далее создаем <ul>.
<div>
<ul>
{% for i, j in ‘наша коллекция’ %}
<li> {{ i }} : {{ j }} </li>
{% if i|length_is:‘7’%}
Если условие True
{% endif %}
{% empty %}
Список пуст
{% endfor %}
</ul>
</div>
{% empty%} – тег, отображает текст, если список был пуст.
i, j - переменные
| - фильтр
length_is – имя фильтра(длина: )
length – длина текст