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
Новые материалы:
- Нажатие на кнопку flask
- Длинный чек python
- Программы на python для начинающих простые
- Python как получить имя функции
- Парсинг python json
- Django что такое
- Поворот матрицы python на 90 градусов
- Краш бот python
- Генератор паролей на python
- Дартс задача python
- Как найти произведение без умножения python
- Python калькулятор чаевых
- Python launcher что это за программа