Я недавно начал работать над Flask и Flask-SQLAlchemy. Исходя из фона Django, я нашел Flask-SQLAlchmey довольно сложным. Я читал, что SQLAlchemy реализует шаблон Data Mapper, в то время как Django ORM основан на шаблоне Active Record.
Вот пример написанного кода, который реализует шаблон хранилища для доступа к базе данных.
Вот еще одна ссылка на комментарий С.Лотта (271 тыс. Репутации), который говорит, что ORM - это уровень доступа к данным, и он отделен от модели.
У меня такие вопросы:
- Можете ли вы привести пример практического использования в приведенном выше примере или собственный пример, в котором полезен шаблон Data mapper? Везде, где я читал, шаблон отображения данных полезен в сложной ситуации, но не видел примеров.
- Является ли использование шаблона репозиториев, как в приведенном выше случае, таким же, как использование шаблона отображения данных?
- Сторонники картографа данных пишут запросы на выборку в классе, отличном от модели, как в примере?
- Почему
Question.query.filter_by(text = text).all()
не лучше использовать, чемdb.session.query(Question).filter(Question.text == text).all()
?
Это не дубликат шаблона DataMapper vs ActiveRecord, потому что это просто говорит об определении, меня больше интересуют практические примеры.