Django. Templates (шаблоны)
Web страницы бывают статическими и динамическим. Статические страницы - это сайты-визитки, лендинги и подобные. Информация на этих страницах не изменяется и обычно такие страницы хранятся на сервере в виде набора файлов (html, css, js), которые передаются клиенту (Web-браузеру обычно) в неизменном виде. Однако, в большинстве случаев требуется динамически формировать странички. Есть множество подходов к созданию динамических страниц.
Один из таких методов - шаблоны Django (templates).
Для демонстрации шаблонов - создадим проект django (см. публикацию: "Django. первые шаги").
Рендеринг шаблона осуществляется при помощи функции
django.shortcuts.render(request, 'templatename', params)
, где 'templatename' - это имя файла, лежащего в папке 'templates' любого приложения проекта; params - словарь, в котором ключ - имя "переменной", а значение - её значение.
Обращение к переменной производится через {{ varname }}. Если переменная представляет из себя массив или словарь, то можно обратиться так: {{ listname.0 }} или так {{ dictname.key }}.
Пример: контекст выглядит так:
context = {
'username': 'Валерий',
'colors': ['red', 'blue', 'жёлтый'],
'phone_numbers': {
'home': 123,
'work': '8-905-123-12-12',
}
}
А шаблон так:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>demo template</title>
</head>
<body>
<div> Это шаблон django</div>
<div>Привет, {{ username }}</div>
<div>Первый элемент массива colors: {{ colors.0 }}</div>
<div>Обращение к словарю: рабочий телефон: {{ phone_numbers.work }}</div>
</body>
</html>
Тогда отрисованная страница будет выглядеть так:
{% csrf_token %}. Большинство тегов принимает аргументы. Пример:
{% cyrcle 'odd' 'even' %}. Некоторые теги требуют открывающий и закрывающий части. Пример:
{% if user.is_authenticated %} Hello, {{ username }} {% endif %}.
Комментарии
Отправить комментарий