Найти в Дзене

Создание Django-шаблонов

Для начала необходимо создать пупку где джанго будет искать шаблоны. По умолчанию джанго ищет в шаблоны во всех папок приложения. Эта папка внутри приложения должна называться 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 – длина текст