Similar presentations:
Модели и миграции
1.
УРОК №3Django
Модели и миграции
2.
Ключевые темы• База данных
• Модель
• Миграция
• Административная консоль
3.
База данныхБаза данных - это специальная программа для хранения и
организации большого объема информации.
Основные модели организации данных в БД:
• Реляционная (табличная) модель
• Нереляционная модель
4.
Реляционная БДКлассический пример реляционной базы данных – набор
связанных друг с другом excel-таблиц.
База Данных
5.
CRUDCRUD – аббревиатура, где каждая буква означает операцию,
которую можно произвести с данными в БД:
• Create – создать запись в БД
• Read – считать данные из БД
Create
Insert
• Update – изменить данные в БД
Read
Select
Update
Update
Delete
Delete
• Delete – удалить данные из БД
6.
SQLSQL (Structured Query Language) – язык структурированных
запросов, использующийся для работы с базой данных:
• Извлечение
• Обновление
• Добавление
• Удаление
7.
Типы языков программированияЯзыки программирования
Императивные
Декларативные
Описывают КАК
выполнять задачу
Описывают КОНЕЧНЫЙ
РЕЗУЛЬТАТ
C/C++, Java, Python
SQL, Haskell, Scala
8.
ORM и Active RecordORM (Object-Relational Mapping) – технология, которая позволяет
взаимодействовать
с
базой
данных
через
объектноориентированный интерфейс.
Active Record – паттерн проектирования, который связывает
объекты в приложении с записями в базе данных, представляя
каждую запись в базе данных в виде объекта.
В итоге для работой с БД SQL знать не обязательно.
9.
Создание собственной модели1) Описать модель (таблицу) согласно паттерну Active Directory
(через классы)
2) Выполнить миграцию
3) Зарегистрировать модель в проекте
4) Проверить модель через панель администратора
10.
Создание собственной БДДля того, чтобы создать свои собственную таблицу в Базе Данных
Django-проекта – её нужно описать в файле Django-приложения
models.py.
Класс
Таблица
Атрибуты
Колонки
11.
Типы полейDjango поддерживает следующие типы данных в моделях:
• BigIntegerField
• IntegerField
• BooleanField
• JSONField
• CharField
• PositiveIntegerField
• DateTimeField
• TextField
• EmailField
• URLField
• FileField
• ImageField
12.
МиграцияМиграция в Django – процесс автоматического обновления схемы
базы данных на основе изменений в моделях (описанных в файле
models.py).
Когда модель (структура таблицы) изменяется, Django создает
миграцию, которая содержит набор инструкций для изменения
схемы базы данных, не удаляя при этом существующих данных.
Команды для миграции в терминале.
Первая – оформляет изменения в БД
в виде файла.
Вторая – изменяет структуру БД
python manage.py makemigrations
python manage.py migrate
13.
Регистрация моделиОдним из способов отслеживания состояния данных в БД является
панель администратора, которая по умолчанию встроена в каждый
Django-проект.
Для того, чтобы модель отображалась в панели администратора –
её нужно зарегистрировать в файле Django-приложения admin.py.
admin.site.register(<model name>)
<model name> – название класса, который представляет модель
14.
Создание супер-пользователяЧтобы пользоваться панелью администратора – требуется создать
аккаунт администратора (супер-пользователя). Для этого в
терминале нужно ввести:
python manage.py createsuperuser
Для создания супер-пользователя потребуется указать: username,
email (опционально), пароль (опционально).
15.
Панель администратораПосле создания супер-пользователя, можно запустить сервер,
добавив в адресную панель после стартовой страницы /admin.
Откроется окно входа в клиент
Django-администратора.
Чтобы в него попасть – требуется
ввести данные ранее созданного
супер-пользователя.
16.
Панель администратораНа открывшейся странице будут перечислены модели (таблицы)
базы данных Django-приложений.
17.
Панель администратораЧерез панель администратора можно осуществлять добавление,
редактирование и удаление данных из таблиц.
18.
ОптимизацияСчитывать отличия между book object (1) и book object (2), не
заходя на страницы с их данными сложно.
Для того, чтобы названия записей в таблице было легче отличить –
можно переопределить в классе модели метод __str__().
ВАЖНО!
При добавлении методов в класс модели
производить миграцию не нужно!
19.
Django shellDjango Shell – интерактивная оболочка (консоль), позволяющая
взаимодействовать с базой данных и приложением чем терминал.
python manage.py shell
Для того, чтобы работать с конкретной моделью – её нужно
импортировать.
from app_name.models import model_name
20.
Внесение записиСоздание записи в модель через консоль работает по такому же
принципу, как и создание экземпляра класса (значения полей идут
в конструктор класса, как аргументы.
book = Book(book_title="Title", book_author="Author", book_page_count=5)
На такая запись будет оставаться в рамках оперативной памяти,
если принудительно её не записать в модель.
book.save()
21.
Вывод данных в консольУбедиться, что запись действительно появилась в модели, можно
не только с помощью панели администратора, но и через саму
консоль, обратившись к самой модели.
Book.objects.all()
Такая команда возвращает список всех записей в модели