Передача переменных в шаблоны Django
В прошлом уроке мы подключали шаблон
к представлению через render.
HTML в файле шаблона был статичным -
одинаковым при каждом запросе.
На практике страница почти всегда зависит от данных: заголовок, текст, имя пользователя, список товаров и так далее. Эти данные готовят в представлении и передают в шаблон.
Третьим аргументом render
можно передать словарь Python.
Django называет его
контекстом (context).
Ключи словаря становятся именами
переменных в шаблоне:
from django.shortcuts import render
def page(request):
return render(request, 'page.html', {
'text1': 'aaa',
'text2': 'bbb',
})
Здесь мы передаем в шаблон две
переменные: text1 и text2.
В шаблоне их можно вывести
в двойных фигурных скобках:
<p>{{ text1 }}</p>
<p>{{ text2 }}</p>
Django подставит значения вместо переменных. В браузере отобразится:
<p>aaa</p>
<p>bbb</p>
В контекст можно передавать строки, числа и другие типы данных Python. Имя переменной в шаблоне должно совпадать с ключом в словаре.
Пусть в представлении объявлены следующие переменные:
text1 = 'aaa'
text2 = 'bbb'
Выведите эти переменные в шаблоне.