Здравствуйте!
Поставил перед собой задачу научиться писать веб-приложения на Python. Правда встал вопрос: какой Фреймворк выбрать? На данный момент выбор пал на Django и Flask.
На данный момент хочется реализовать проект блог+комьюнити, то есть что-то похожее на Хабр и другие подобные проекты.
Прошу помочь выбрать наиболее подходящий из данных Фреймворков, который удовлетворял бы задаче и подходил для человека, который только начинает познавать всю суть веб-приложений на питоне. Возможно, у вас есть более подходящие решения, например, другие фреймворки, тогда я готов, с удовольствием, выслушать.
P.S. Для изучения Django у меня имеется книга Django 2 by Example, а для Flask - книга Мигеля Гринберга. Первая на английском, вторая на русском. Возможно, вы знаете, какая из этих книг больше подходит новичку.
Если вы изучали Python по курсу, книге, а не понахватались то тут, то там переходя с PHP, то лучше Flask.
1) По моему субъективному мнению, код Django - это PHP-style, в частности ORM с которым пришлось возиться до его недров. PHP-style в Django смывает всю мощь и красоту Python'а. От такого Python'а можно заработать душевное расстройство :) Сравните встроенный в джангу ORM и например ORM SQLAlchemy во Flask. В джанго будет множество классов наследников, чтобы составить нормальный SQL запрос с джойнами, select_related, prefetch_related и т.д.
2) Документация по джанге на русском (https://djbook.ru/) - это взрыв мозга, на каждую сущность создано с десяток синонимов и всё это варится в какой-то каше, сложно понимать о чем идет речь и улавливать связи между разделами документации. Это самая худшая документация которую мне приходилось встречать по фреймворкам. Много ошибок перевода. Лучше её вообще не открывать.
Провел с плотно джангой около месяца, сложности на пустом месте отпугнули меня в сторону Flask с которым уже 3 месяца. Полностью доволен и от Python'а как в джанге блевать не хочется.
microcoder, первый раз читаю подобную хрень. Если Вы, уважаемый не смогли осилить документацию с оф. сайта https://docs.djangoproject.com , а от русской версии вас тошнит, то будьте любезны оставить свое мнение при себе!
Для начала Django. Во первых генерируется базовая структура проекта, во вторых всё что нужно в комплекте.
Научитесь писать на джанге- научитесь и на фласке, они очень похожи.
А как только вы во фласке прикрутите орм, шаблонизатор, wtforms, разнесёте код по отдельным приложениям, то в итоге у вас получится Django
planc спасибо большое за ответ! Можете пояснить как в жизни это реализовать: «делай на джанге, параллельно ковыряй фласк». Просто пока нет сформировавшегося представления об этих фреймворках
Что Вы можете сказать по поводу книги Django 2 by Example? Я ее начал читать, на первый взгляд, в ней описаны проекты, которые очень схожи с моей задачей. Там реализуется блог, социальная составляющая.
Мне было проще на джанго, у него уже всё готово и остается только на практике смотреть метод за методом. А на фласке мне было сложно, так как требовало отдельно учить ту же sqlalchemy.
Если писать большой сервис (такой как Хабр) - это джанго. Фласк - микрофреймворк, где все остальное подключается дополнительно, он нужен для небольших проектов.
Flask, когда точно знаете, что вам не нужно то, что есть в Django.
Flask, со всем необходимым для разработка вэб-проекта == Django. Т.е., чтобы не вылосипедить - берите Django.
Django - многие вещи из коробки, быстрая разработка, отличный фреймворк с большими возможностями, комьюнити.