DJANGO ПЕРЕДАЧА ДАННЫХ В ШАБЛОН

Шаблоны в Django позволяют отделить логику сайта от представления. Часто в шаблонах необходимо передать данные, которые будут выводиться в HTML. Django предоставляет несколько способов передачи данных в шаблон:

1. Через контекст. Контекст – это словарь, содержащий переменные и их значения, которые будут доступны в шаблоне. Можно передать контекст в функцию render() в виде третьего аргумента:

from django.shortcuts import renderdef my_view(request): my_data = {'foo': 'bar'} return render(request, 'my_template.html', context=my_data)

2. Через объекты QuerySet. Если необходимо передать данные из базы данных, можно использовать QuerySet – запрос на выборку данных из БД. QuerySet также может быть передан в функцию render() и использоваться в шаблоне:

from myapp.models import MyModelfrom django.shortcuts import renderdef my_view(request): my_objects = MyModel.objects.all() return render(request, 'my_template.html', context={'my_objects': my_objects})

3. Через объекты формы. Если необходимо передать данные, введенные пользователем в форму на странице, можно использовать объекты формы. Формы могут быть отправлены на сервер методом GET или POST. При отправке формы методом POST данные будут доступны в request.POST. Объект формы можно передать в контекст шаблона:

from django.shortcuts import renderfrom myapp.forms import MyFormdef my_view(request): if request.method == 'POST': form = MyForm(request.POST) if form.is_valid(): # Обработка данных формы pass else: form = MyForm() return render(request, 'my_template.html', context={'form': form})

4. Через переменные в URL. При обработке URL-адресов в Django можно использовать переменные. Значения этих переменных можно передать в шаблон:

from django.shortcuts import renderdef my_view(request, my_variable): return render(request, 'my_template.html', context={'my_variable': my_variable})

5. Через наследование шаблонов. В Django можно создавать шаблоны, наследующие другие шаблоны. При этом в дочерних шаблонах можно использовать блоки, которые будут перезаписывать соответствующие блоки в родительском шаблоне. Дочерний шаблон может получать данные через контекст родительского шаблона:

{% extends "base.html" %}{% block content %}

{{ my_title }}

{{ my_text }}{% endblock %}

Это были основные способы передачи данных в шаблон в Django. Более подробную информацию можно найти в официальной документации.

Понять Django. Прикручиваем фронтенд. Объясняю просто и с картинками.

#6. Шаблоны (templates). Начало - Django уроки

19 Шаблоны в Django. Шаблонизация в Django. Django Templates.

21 Django template language. Рендеринг шаблона.

Django Web Framework (1.11.3) #3 - Шаблоны и Передача Данных в Templates (HTML Файлы) + Bootstrap

39 Выводим QuerySet в шаблон. Курс по Django 3

Изучение Django 3 / Урок #6 - Передача данных в шаблоны

Django с нуля. Урок №11. Передача данных в HTML-шаблон

Стать программистом в 40+? О сложностях в обучении и устройстве на работу. Демотивирующее видео.

Отправка html Emails на основе шаблонов в Django

BLGPG-CB31A91F4278-24-09-19-20

Новые материалы: