ORM на Python: сравнение двух популярных систем | OTUS
👋 Канал OTUS в Telegram!
Посты от приглашенных гостей из IT-тусовки, полезные статьи, подборки вакансий от партнеров ➞
Подробнее

Курсы

Программирование
Web-разработчик на Python Разработчик Python Разработчик на Spring Framework Разработчик Golang iOS Разработчик. Продвинутый курс v 2.0. PostgreSQL Vue.js разработчик Архитектор программного обеспечения Разработчик C++ MS SQL Server разработчик Android-разработчик. Базовый курс Архитектор высоких нагрузок Backend-разработчик на PHP Алгоритмы для разработчиков Team Lead 2.0 Python-разработчик. Базовый курс VOIP инженер Базы данных Разработчик программных роботов (RPA) на базе UiPath и PIX Разработчик голосовых ассистентов и чат-ботов Agile Project Manager в IT
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Сравниваем две популярные ORM на Python

WebDev_Deep_LAST_25.07_3_Site.png

Две самые популярные ORM на Python – это SQLAlchemy и Django ORM. Давайте взглянем на их основные различия.

Разные подходы к отображению

Django ORM использует паттерн active record, а SQLAlchemydata mapper. Если коротко, то разница между этими подходами заключается в том, что active record подразумевает, что каждая строка в базе данных будет обёрнута в отдельный python-объект. А подход data mapper позволяет управлять этим отображением.

В целом ни один из этих подходов не хуже. У каждого есть свои сильные и слабые стороны. Например, подход active record проще для понимания и популярнее, а data mapper даёт больше возможностей.

Разная гибкость

Django ORM – часть фреймворка Django, которая позволяет очень просто делать определённое подмножество всех сайтов. Django ORM обладает теми же свойствами: более-менее типичные запросы на ней можно сделать очень легко. А вот со сложными запросами Django ORM не справится.

SQLAlchemy наоборот: позволяет создавать очень сложные запросы, но в среднем формирование запроса будет сложнее.

Чаще всего именно это приводит к необходимости использовать SQLAlchemy в проектах на Django: в некоторых местах нужно сделать особо сложные запросы, с которыми не справится Django ORM, поэтому именно в этих местах используют SQLAlchemy.

Размер сообщества

Django ORM нельзя использовать отдельно от Django, поэтому и сообщество ограничено пользователями Django.

С SQLAlchemy всё иначе: она не привязана к фреймворку и позволяет строить очень сложные запросы, что делает её очень популярной. На сегодняшний день сообщество SQLAlchemy – самое большое среди сообществ других ORM на Python.

Вместо вывода

Как видите, даже основные различия показывают, что Django ORM и SQLAlchemy – это два разных инструмента для разных целей, и противоборства между ними нет.

Есть вопрос? Напишите в комментариях!

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
🎁 Дарим сертификаты на скидку!
Запишитесь на июньскую трансляцию интересного вам дня открытых дверей и участвуйте в Акции ➞