Введение

Этот раздел является результатом очень хорошего ответа на тему переполнение стека.

Что такое 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

ОБНОВИТЬ

Чтобы обновить существующую запись в нашей базе данных, мы должны выполнить следующие команды:

  1. Найти запись
  2. Сбросить значение (я)
  3. Добавить в сеанс
  4. Выполнить session.commit ()
UrbanVeggieBurger = session.query(MenuItem).filter_by(id=8).one()
UrbanVeggieBurger.price = '$2.99'
session.add(UrbanVeggieBurger)
session.commit()

УДАЛИТЬ

Чтобы удалить элемент из нашей базы данных, мы должны выполнить следующие шаги:

  1. Найдите запись
  2. Session.delete (запись)
  3. Session.commit ()
spinach = session.query(MenuItem).filter_by(name = 'Spinach Ice Cream').one()
session.delete(spinach)
session.commit()