SQL — мощный язык, но иногда его сложно интегрировать в ваше приложение. Возможно, вы использовали манипуляции со строками для генерации запросов для запуска через интерфейс ODBC или использовали API БД в качестве инженера Python. Таким образом, может быть сложно поддерживать безопасность и изменять базу данных.

О
SQLAlchemy — мощной и гибкой библиотеке Python. Это инструменты, которые позволяют вам один раз сопоставить классы и объекты вашего приложения с таблицами базы данных, а затем «забыть об этом» или снова и снова возвращаться к вашей модели для точной настройки производительности. SQLAlchemy был создан Майком Байером в 2005 году.

Зачем использовать?

Основная причина его использования заключается в том, чтобы отделить код от базовой
базы данных. Это упрощает миграцию. Язык выражений SQL — это Pythonic способ представления общих операторов и выражений SQL, и он представляет собой лишь небольшую абстракцию от типичной языковой логики SQL от Oracle к PostgreSQL или от базы данных приложения к хранилищу данных и т. д. Это также помогает гарантировать, что входные данные базы данных дезинфицированы и должным образом защищены перед отправкой в ​​базу данных. Это предотвращает распространенные проблемы, такие как атаки путем внедрения кода SQL.

Ядро SQLAlchemy и язык выражений SQL
Язык выражений SQL — это язык, который абстрагирован от языка SQL в стиле Python для представления общих операторов SQL. Он стандартизирован таким образом, что обеспечивает согласованный язык для большого количества серверных баз данных.

ORM (отображение отношений объектов) — это библиотека кода, которая автоматизирует передачу данных, хранящихся в таблицах реляционных баз данных, в объекты, которые чаще используются в коде приложения.

Должен ли я выбрать SQLAlchemy Core или ORM?
Чтобы выбрать доминирующий уровень доступа к данным для приложения, вы можете учитывать личные предпочтения и/или несколько факторов.

Самая большая разница между Core и ORM заключается в представлении данных как схемы или бизнес-объектов. SQLAlchemy Core имеет представление, ориентированное на схему, которое, как и традиционный SQL, сосредоточено на таблицах, ключах и структурах индексов. Это хорошо работает для больших баз данных и нескольких баз данных.

Инкапсуляция в ORM позволяет легко сделать взаимодействие с базой данных более похожим на обычный код Python. Микросервисы также выигрывают от абстракции базовой базы данных, что позволяет разработчику сосредоточиться только на реализуемом процессе.

Контрольный список, который поможет вам решить, какой вариант лучше для вас:

Используйте ядро:

  • Если вы работаете с фреймворком, который уже имеет встроенную ORM, но хотите добавить более мощную отчетность, используйте Core.
  • Если вы хотите просматривать свои данные в более ориентированном на схему представлении (как это используется в SQL), используйте Core.
  • Если у вас есть данные, для которых не нужны бизнес-объекты, используйте Core.

Используйте ОРМ:

• Если вы рассматриваете данные как бизнес-объекты, используйте ORM.

  • Если вы создаете быстрый прототип, используйте ORM.

Используйте ядро ​​и ORM:

  • Если у вас есть сочетание потребностей, которые действительно могут связать бизнес-объекты и другие данные, не связанные с проблемной областью, используйте оба.