1.09M
Категория: ПрограммированиеПрограммирование

Django. Вывод данных

1.

УРОК №4
Django
Вывод данных

2.

Ключевые темы
• CRUD в Django ORM
• Передача данных из БД на frontend
• Django Template Language

3.

Понятийные сущности
CRUD
Model
Database
Виртуальная
среда
ORM
Миграция
models.py
Django
shell

4.

MVT

5.

QuerySet
QuerySet - это объект, представляющий коллекцию моделей из
базы данных, на которые можно применять различные операции и
методы, чтобы получить нужные данные. QuerySet создается при
выполнении запросов к базе данных через ORM Django.
Database
QuerySet
Python

6.

ORM – Read
• model_name.objects.all() – возвращает QuerySet со всеми записями
в таблице.
• model_name.objects.filter(<условия>) – возвращает QuerySet с
записями, которые соответствуют условиям.
• model_name.objects.exclude(<условия>) – возвращает QuerySet с
записями, которые НЕ соответствуют условиям.
• model_name.objects.get(<условия>) – возвращает один объектзапись, который соответствует условиям. Если по условию не
найдено объекта или найдено более одного объекта –
генерируется исключение.

7.

ORM – Read. Условия
Некоторые популярные условия:
• exact – точное соответствие
• in – наличие значения в списке
• gt(e) – значение больше или равно заданному
• lt(e) – значение меньше или равно заданному

8.

ORM – Create
• model_name.objects.create(<присваивание значений атрибутам>)
– создаёт объект с указанными значениями и сохраняет в БД.
• object = ModelName((<присваивание значений атрибутам>)
object.save() – создание объекта заранее и сохранение его в базу
данных отдельной командой.

9.

ORM – Update
Для того, чтобы обновить уже существующие данные – их надо
получить (применить операцию Read):
• Model.objects.filter(<условия>).update(<новые значения>) – через
QuerySet выборка определённых данных и их изменение.
• object = ModelName.objects.get(<условие>)
object.field_name = new_value
object.save()

10.

ORM – Delete
Для того, чтобы удалить данные – их надо получить (применить
операцию Read):
• Model.objects.filter(<условия>).delete() – через QuerySet выборка
определённых данных и их удаление.
• object = ModelName.objects.get(<условие>)
object.delete() – удаление записи через его объект.

11.

Передача данных в шаблон
Для передачи данных на веб-страницу в Django используется
контекстный словарь (context dictionary).
В контекстном словаре ключи - это имена переменных, которые
будут доступны на странице шаблона, а значения - это сами
данные, которые необходимо передать.

12.

Распаковка данных в шаблоне
Django Template Language (DTL) – это язык шаблонов,
используемый в Django для создания динамических веб-страниц.
DTL позволяет вставлять в HTML-шаблоны переменные, циклы,
условия и другие конструкции.
Распаковка данных из контекста происходит с помощью двойных
фигурных скобок, внутри которого указывается имя переменной.

13.

Немного про DTL
DTL определяет 4 группы сущностей:
Переменные
Теги
Фильтры
Комментарии
• Переменные – значения из словаря context
• Теги – обеспечивают логику (условия, циклы и т.д.)
• Фильтры – преобразуют значения переменных и тегов
• Комментарии – комментарии…

14.

Логика тегов
{% тег %}
Тело
{% endтег %}

15.

Условные конструкции
{% if <условие> %}
Контент
{% elif <условие> %}
Контент
{% else %}
Контент
{% endif %}

16.

Условные конструкции

17.

Циклы
{% for <переменная(ые)> in <список/словарь> %}
Контент
{% endfor %}

18.

Циклы

19.

Конец
English     Русский Правила