ORM (Object-Relational Mapping / Объектно-реляционное отображение) для Python
Суть проблемы: как только требуется сделать что-то поменше Django, сразу встает вопрос об ORM. ОРМ - это удобно, наглядно и легкоподдерживаемо. Куда более легко, чем голый SQL.
И тут перед программистом встает непростой выбор, на поверку оказывающийся очень простым: что использовать?
Django ORM ( а начинающие не всегда-то и знают, что это ORM, считая особенностью Джанги), строго говоря, можно использовать и без полноценного джанго-проекта. Не все равно расход времени на поддержание такого кода будет выше независимого решения.
Поэтому остается всего один вариант: SQLAlchemy.
Кроме него/нее есть легковесные PeeWee (более всего похожа на Джангу), PonyORM от отечественного производителя и ORM в web2py фреймворке.
Но все они имеют один, но существенный недостаток: миграции. С миграциями все нелегко.
make migrations / migrate как в Django в них сделать непросто.
Строго говоря, и в Алхимии с миграциями не все идеально, но широкая распространенность и поддержка сообщества (тот же Flask-SQLAlchemy) сглаживают этот недостаток.
Собственно, поэтому вопрос об альтернативе SQLAlchemy не стоит.
Русскоязычные ресурсы: материала довольно мало плюс устаревшие версии, но для быстрого старта читать в таком порядке:
http://ninjaside.info/blog/ru/orm-ispolzovanie-sqlalchemy/
https://solovyov.net/blog/2011/basic-sqlalchemy/
https://ru.wikibooks.org/wiki/SQLAlchemy
отличное краткое введение - сравнение с Django
http://lucumr.pocoo.org/2011/7/19/sqlachemy-and-you/
Комментарии
Отправить комментарий