Всем привет!
Разрабатываю приложение которое использует "сложную" схему БД и нужен гибкий, удобный ORM.
Что не нравится в Джанге:
ORM. Его эксплуатация/реализация очень похожа на какой-то PHP-style, не Python код и это на подсознании вызывает отторжение от этих магических строк в фильтрах с применением функций-строк. Приходится переопределять select_related, prefetch_related и другие методы, так как внего зашиты связи полей и добавить просто фильтр не получается и выглядит это громоздко для чтения и т.д. Те же Q, F объекты для построения запросов это что-то "страшное" в сравнении с такими ORM как pewee или ponyorm. Обратные связи между моделями не всегда работают в сравнении с SQLAlchemy где это вообще работает из "коробки". Ну да ладно, не буду утверждать все неловкости, вопрос не в сравнении, просто ORM джанги душа моя не принимает ))
Поковырявшись плотно с ORMом, что-то мне подсказывает, что PHP-style во всем проекте такой, поэтому захотелось сменить фреймворк после взгляда на SQLAlchemy который меня полностью устроил. Но вот web-framefork так просто найти на замену Джанги у меня вызвает затруднения.
Пока присматриваюсь к Flask, но смущают описанные вот
здесь вещи. То есть, мне не нравится тоже самое, что и описано в приведенной ссылке. Так же, не понятно будущее проекта и расширений вокруг него, такое ощущение, что автор давно забил на этот проект, последний релиз вышел в мае прошлого года и по коммитам на github создалось впечатление, что ничего серьезного с проектом не происходит.
Беглый взгляд на Pyramid дал мне ощущение, что SQLAlchemy я могу использовать, также очень легко подключить один из трех (кажется) шаблонизатор на выбор, в целом код приятней (логичнее, явнее) из выше просмотренных проектов.
Что мне нужно?
* Отличный ORM, такой как SQLAlchemy, то есть в Flask и Pyramid он есть.
* расширения/аддоны такие как в джанге: django-allauth, django-debug-toolbar и пока этого достаточно.
Что посоветуешь Flask или Pyramid? С какими объективными трудностями придется столкнутся используя Pyramid?