Введение
Этот раздел является результатом очень хорошего ответа на тему переполнение стека.
Что такое ORM ?.
Объектно-реляционное сопоставление (ORM) - это метод, который позволяет запрашивать данные из базы данных и управлять ими с использованием объектно-ориентированной парадигмы. Говоря об ORM, большинство людей имеют в виду библиотеку, которая реализует технику объектно-реляционного сопоставления, отсюда и фраза «ORM».
Библиотека ORM - это совершенно обычная библиотека, написанная на выбранном вами языке, которая инкапсулирует код, необходимый для управления данными, поэтому вы больше не используете SQL; вы напрямую взаимодействуете с объектом на том же языке, который используете.
Почему мы должны использовать ORM?
Использование ORM экономит много времени, потому что:
- СУХОЙ: вы пишете свою модель данных только в одном месте, и код проще обновлять, поддерживать и повторно использовать.
- Многие вещи выполняются автоматически, от работы с базой данных до I18N.
- Это заставляет вас писать код MVC, что, в конце концов, делает ваш код немного чище.
- Вам не нужно писать плохо сформированный SQL (большинство веб-программистов действительно отстойно, потому что SQL рассматривается как «вспомогательный» язык, хотя на самом деле это очень мощный и сложный язык).
- Дезинфекция; использовать подготовленные операторы или транзакции так же просто, как вызвать метод.
Использование библиотеки ORM более гибкое, потому что:
- Он соответствует вашему естественному способу программирования (это ваш язык!).
- Он абстрагирует систему БД, поэтому вы можете изменить ее, когда захотите.
- Модель слабо связана с остальной частью приложения, поэтому вы можете изменить ее или использовать где-нибудь еще.
- Он позволяет без головной боли использовать такие качества ООП, как наследование данных.
Основы
В этой статье я сосредоточусь на том, как создать базу данных с помощью SQLAlchemy. В целом есть четыре шага для создания базы данных.
Конфигурация
В начале файла 1) импортирует все необходимые модули 2) создает экземпляр декларативной базы.
В конце файла 1) создает или подключает базу данных и добавляет таблицы и столбцы.
Класс
- Представление таблицы в виде класса Python.
- Расширяет базовый класс.
- внутри будет вложен код таблицы и маппера.
Таблица
- Представление нашего стола внутри.
Картограф
- Сопоставляет объекты python со столбцами в нашей базе данных.
Создать базу данных с кодом
Пример кода взят из udacity git.
CRUD-операции с SQLAlchemy
СОЗДАЙТЕ
myFirstRestaurant = Restaurant(name = "Pizza Palace") session.add(myFirstRestaurant) sesssion.commit()
ЧИТАТЬ
firstResult = session.query(Restaurant).first() firstResult.name
ОБНОВИТЬ
Чтобы обновить существующую запись в нашей базе данных, мы должны выполнить следующие команды:
- Найти запись
- Сбросить значение (я)
- Добавить в сеанс
- Выполнить session.commit ()
UrbanVeggieBurger = session.query(MenuItem).filter_by(id=8).one() UrbanVeggieBurger.price = '$2.99' session.add(UrbanVeggieBurger) session.commit()
УДАЛИТЬ
Чтобы удалить элемент из нашей базы данных, мы должны выполнить следующие шаги:
- Найдите запись
- Session.delete (запись)
- Session.commit ()
spinach = session.query(MenuItem).filter_by(name = 'Spinach Ice Cream').one() session.delete(spinach) session.commit()