Здраствуй, ЛОР.
В скором времени встанет задача разработки веб-приложения. Поэтому я сейчас озаботился выбором фреймворка. Хотел бы спросить совета у знающих людей, обладающих практическим опытом применения вышеуказанных фреймворков.
По задаче: будет многофункциональный сайт, который в основном направлен на отображение данных (которые будут собираться в БД бэкграунд сервисами) и работу с пользователями (регистрация, ставки, посылки, покупки и т.д.).
Вроде бы, тут без вариантов выходит Django, так как этот инструмент «из коробки» обеспечивает большую часть необходимого функционала своими батарейками из contrib'а. Но есть одна деталь: мне не подойдут реализации groups, permissions (про user я понятное дела вообще молчу) по-умолчанию. Придется либо писать полностью свое, либо как-то наследоваться от того, что есть (пока не знаю насколько это возможно, и что проще).
Django (что нравится, а что нет):
- Нравится документация.
- Нравятся приложения (независимые и переносимые из проекта в проект).
- Нравится система интернационализации Django (проект будет многоязычным).
- Нравится работа с формами.
- Нравится поддержка сессий.
- Нравится, что поддерживается кэширование (сам активно пока не использовал, но документацию почитал).
- В принципе, устраивает ORM (хотя можно было бы попробовать SQLAlchemy).
- Хотелось бы использовать Jinja2 в качестве шаблонизатора (знаю, что можно это сделать и в Django).
- Из предыдущего опыта работы с Django, знаю, что для многих задач есть готовые решения. Но на практике оказалось, что они не всегда полностью отвечают моим нуждам, и проще написать свое, чем настроить то, что есть (в частности хапнул горя с Pinax).
Если разобраться, мне от Django останется работа с формами, i18n, ORM, urls.py, кэширование. Не так уж и мало, но я боюсь, что при развитии проекта попаду в ситуацию, когда мне не будет хватать того, что есть в фреймворке, а переделать что-то внутри Django будет сложно.
С Flask'ом еще не работал, почитал отзывы людей, посмотрел документацию, пошагал по туториалу. В принципе, штука интересная. Правда сами создатели говорят в документации, что это микрофреймворк и он не пригоден для решения больших задач. Первое, что хотелось бы услышать в ответах: насколько он пригоден для более-менее больших проектов.
Видел, что Flask работает с Jinja2 и SQLAlchemy без проблем. Остаются вопросы: что делать с формами (хочется более декларативное описание), i18n, кэшированием?
Мой опыт: C, Java, Python (пара не очень сложных приложений на Django, но уже хорошо ориентируюсь в фреймворке, знаю где что можно почитать в документации)
Проект начну разрабатывать я один, потом подтянутся люди, которые не очень разбираются в Python'е.
Спасибо всем, кто это дочитал до конца.
P.S. внимательно изучил большинство тем на ЛОРе, которые касались вопросов по фрэймворкам Python'а.
P.P.S. Ruby, пожалуйста, не предлагайте.