Django Змінні шаблону
Змінні шаблону
У шаблонах Django ви можете відобразити змінні, помістивши їх у дужки {{ }}
:
Створити змінну в режимі представлення
Змінну firstname
у прикладі вище було надіслано до шаблону через представлення:
views.py
:
from django.http import HttpResponse
from django.template import loader
def testing(request):
template = loader.get_template('template.html')
context = {
'firstname': 'Linus',
}
return HttpResponse(template.render(context, request))
Виконати Приклад »
Як ви можете бачити в поданні вище, ми створюємо об’єкт під назвою context, заповнюємо його даними та надсилаємо його як перший параметр у функції template.render()
.
Створення змінних у шаблоні
Ви також можете створювати змінні безпосередньо в шаблоні, використовуючи тег шаблону {% with %}
.
Змінна доступна, доки не з’явиться тег {% endwith %}
:
Приклад
templates/template.html
:
{% with firstname="Tobias" %}
<h1>Hello {{ firstname }}, how are you?</h1>
{% endwith %}
Виконати Приклад »
Ви дізнаєтесь більше про теги шаблонів у наступному розділі.
Дані з моделі
Наведений вище приклад продемонстрував простий підхід до створення та використання змінних у шаблоні.
Зазвичай більшість зовнішніх даних, які ви хочете використовувати в шаблоні, надходять із моделі.
У попередніх розділах ми створили модель під назвою Member
, яку ми будемо використовувати в багатьох прикладах у наступних розділах цього посібника.
Щоб отримати дані з моделі Member
, нам доведеться імпортувати їх у views.py
файл і витягти дані з нього в представленні:
members/views.py
:
from django.http import HttpResponse, HttpResponseRedirect
from django.template import loader
from .models import Member
def testing(request):
mymembers = Member.objects.all().values()
template = loader.get_template('template.html')
context = {
'mymembers': mymembers,
}
return HttpResponse(template.render(context, request))
Тепер ми можемо використовувати дані в шаблоні:
templates/template.html
:
<ul>
{% for x in mymembers %}
<li>{{ x.firstname }}</li>
{% endfor %}
</ul>
Виконати Приклад »
Ми використовуємо тег шаблону Django {% for %}
для циклічного перегляду учасників.
Ви дізнаєтеся більше про теги шаблонів у наступному розділі.