Similar presentations:
Django. Вывод данных
1.
УРОК №4Django
Вывод данных
2.
Ключевые темы• CRUD в Django ORM
• Передача данных из БД на frontend
• Django Template Language
3.
Понятийные сущностиCRUD
Model
Database
Виртуальная
среда
ORM
Миграция
models.py
Django
shell
4.
MVT5.
QuerySetQuerySet - это объект, представляющий коллекцию моделей из
базы данных, на которые можно применять различные операции и
методы, чтобы получить нужные данные. 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.
Немного про DTLDTL определяет 4 группы сущностей:
Переменные
Теги
Фильтры
Комментарии
• Переменные – значения из словаря context
• Теги – обеспечивают логику (условия, циклы и т.д.)
• Фильтры – преобразуют значения переменных и тегов
• Комментарии – комментарии…
14.
Логика тегов{% тег %}
Тело
{% endтег %}
15.
Условные конструкции{% if <условие> %}
Контент
{% elif <условие> %}
Контент
{% else %}
Контент
{% endif %}
16.
Условные конструкции17.
Циклы{% for <переменная(ые)> in <список/словарь> %}
Контент
{% endfor %}