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

Модели и миграции

1.

УРОК №3
Django
Модели и миграции

2.

Ключевые темы
• База данных
• Модель
• Миграция
• Административная консоль

3.

База данных
База данных - это специальная программа для хранения и
организации большого объема информации.
Основные модели организации данных в БД:
• Реляционная (табличная) модель
• Нереляционная модель

4.

Реляционная БД
Классический пример реляционной базы данных – набор
связанных друг с другом excel-таблиц.
База Данных

5.

CRUD
CRUD – аббревиатура, где каждая буква означает операцию,
которую можно произвести с данными в БД:
• Create – создать запись в БД
• Read – считать данные из БД
Create
Insert
• Update – изменить данные в БД
Read
Select
Update
Update
Delete
Delete
• Delete – удалить данные из БД

6.

SQL
SQL (Structured Query Language) – язык структурированных
запросов, использующийся для работы с базой данных:
• Извлечение
• Обновление
• Добавление
• Удаление

7.

Типы языков программирования
Языки программирования
Императивные
Декларативные
Описывают КАК
выполнять задачу
Описывают КОНЕЧНЫЙ
РЕЗУЛЬТАТ
C/C++, Java, Python
SQL, Haskell, Scala

8.

ORM и Active Record
ORM (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 shell
Django 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()
Такая команда возвращает список всех записей в модели

22.

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