Вопросы к Поиску с Алисой
Декларативное определение моделей в SQLAlchemy предполагает, что вся метаинформация и дополнительные атрибуты, такие как связи с другими классами, объявляются встроенными в определение класса. ru.stackoverflow.com Для этого используется базовый класс, от которого наследуются все модели. codelab.pro Он предоставляет основные возможности для работы с таблицами и маппингом. codelab.pro
Пример: функция declarative_base()
определяет новый класс, от которого будут унаследованы все ORM-классы. ru.wikibooks.org В этом случае объекты Column определяются без указания строки имени, так как она будет выведена из имени атрибута. ru.wikibooks.org
Недекларативное определение моделей в SQLAlchemy подразумевает использование mapper(), который описывает сопоставление каждой колонки базы данных и классом модели. habr.com
Классы, определённые с помощью недекларативного и декларативного подходов, полностью взаимозаменяемы. ru.stackoverflow.com pythondoc.ru В конечном итоге обе системы создают одну и ту же конфигурацию, состоящую из пользовательского класса Table, связанного вместе с помощью mapper(). ru.stackoverflow.com
Императивный подход удобнее использовать для описания таблиц связей. ru.stackoverflow.com Он позволяет создавать и изменять модели «на лету», что даёт возможность гибкого использования базы данных. ru.stackoverflow.com