Почему все хотят django?

Собственно, недавно начал обучаться web-разработке.
После некоторого углубления в python начал работу с веб-приложениями с помощью фреймворка Flask, но уже на начальных этапах стало тяжко проходить и понимать определённые моменты даже с помощью всех docs'ов и mega-tutorial'а от Мигеля. Встал вопрос о смене фреймворка на Django(всё равно прогресс на фласке недалёкий), ибо по нему тонны русскоязычного учебного материала имеется, что, несомненно, облегчит обучение. Однако вот проблемка: как-то описаниям и отзывам людей, которые уже опробовали оба и выбрали фласк, хочется выбрать его же из-за лёгкости и отсутствия строгости, гибкости.
Поизучав спрос на работников на рынке рунета обнаружил, что вообще никто не ищет flask-разработчиков. Все ищут разработчиков на Django. Вот и вопрос поста: ПОЧЕМУ Django? Почему все хотят его? Это сугубо фишка рунета, или к тому есть какие-то предпосылки\причины?
И если тут есть люди, использующие\использовавшие хотя бы по году оба фреймворка, осветите пожалуйста по-подробней этот вопрос с вашей колокольни. Ещё был бы весьма признателен, если бы вы скинули те источники, откуда вы черпали знания по flask\Django, не считая документацию.
  • Вопрос задан
  • 19444 просмотра
Пригласить эксперта
Ответы на вопрос 18
@dustyattic
Всем хорош Django, все у него есть, но...
Django - это коробочный продукт, со всеми достоинствами и недостатками, присущими коробочным продуктам. То есть внутри большой коробки, называемой Django, есть много других коробочек, содержимое которых прекрасно состыковано с самим продуктом и с другими коробочками. Поэтому разработчик на Django чувствует себя вольготно. А если у него возникает проблема, то большое комьюнити всегда поможет.
Я разработал на Django только один проект. Возможно, будь проект простым, я до сих пор бы использовал Django. Но проект оказался неожиданно сложным. Написание кода для обработки данных из некоторого количества таблиц с довольно запутанными связями показало мне, что у Django, несмотря на его популярность, совершенно никудышный ORM. Используя Django, я половину обращений к таблицам реализовывал в чистом SQL, а затем стыковал результаты с данными полученными с помощью ORM. У меня все получилось. Но осадок остался. Поэтому следующую версию того же проекта, и все последующие тоже, я написал на Flask, используя в качестве ORM небезызвестный SQLAlchemy.
Я не жалею времени, потраченного на изучение Django. Это хороший опыт. Те, кто используют Django, чувствуют себя защищенными. Они часть большого дружного сообщества, где можно найти любую поддержку.
Но я также не жалею, что я ушел от Django. У Django вся магия ( регистрация, авторизация, работа с сессиями и многое-многое другое) спрятана под капотом, я просто подключал компоненты и использовал их. Используя Django, я делал многие вещи автоматически, совершенно не задаваясь вопросом как эти вещи работают. Уйдя от Django, я лучше стал понимать то, чем занимаюсь каждый день.
Можете мне поверить на слово, на Flask-е возможно писать очень большие проекты, с большим количеством кода. При этом реализация всей магии ложится на Вас. Это просто вопрос доверия. Используя Django, Вы доверяете всю магию Django, не используя его, Вы доверяете всю магию себе.
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
Это самый раскрученный фреймворк, чего ж вы хотите. Это как RoR для ruby, или Express для NodeJS
Ответ написан
un1t
@un1t
"Легкость и гибкость" на деле оборачиваются тем, что он ничего не умеет и очень мало сторонних библиотек. Ну и легкость видимо заключается в том, что по нему меньше документации. На деле разницы в производительности нет, а отсуствие библиотек становится каждодневной проблемой. Производительность разработки страдает, приходится элементарные вещи писать самому. Можно пойти дальше и самому написать веб сервер на чистом питоне. Будет еще "легче и гибче", а фласковские проблемы усугубятся.
Ответ написан
@bromzh
Drugs-driven development
  1. Для джанги есть куча готовых батареек. Для типовых проектов вообще может получиться так, что своего кода будет минимум. а весь проект - использование нужных модулей.
  2. Чёткая структура проекта, новичку не надо будет изучать структуру, как в случае с тем же фласком
  3. Все компоненты джанги (ORM, шаблонизатор, админка) поддерживаются одной командой, меньше будет случаев, когда что-то отваливается из-за несовместимости версий

Хотя я и сам выбрал бы фласк.
Ответ написан
@Vlad171
Для меня самый главный аргумент в пользу Django - работающий портал за несколько дней! Он очень прост в освоении. Это то же, что сравнивать python с другими языками, со всеми его плюсами и минусами. И не соглашусь с тем что мало сторонних библиотек - под все свои нужды я все очень быстро нашел. Да и написать свое что-то очень просто. Плюс простота отладки.
Ответ написан
sim3x
@sim3x
лёгкости
зачем легкость если можно запустить много контейнеров с приложение и ускориться сильнее чем от любой оптимизации
гибкости
пхп тоже гибкий, очень гибкий, такая гибкость дает говнокодить с особой гибкостью
отсутствия строгости
означает, что за тобой придет разраб, которому не понравится твоя "схема" и придется все переписывать

А отсутствие ядра, приведет к тому, что придется самому поддерживать свой зоопарк частоиспользуемых аппов

Ориентируйся на отзывы тех, кто на фласке делал большие приложения в коммандах, а не те кто написал хеловорлды
Ответ написан
Комментировать
saintbyte
@saintbyte
Django developer
Джанга умеет дофига из коробки - она реально расслабляет , та же рельса и тот как-то больше кнопок заставляет давить.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
фласк моложе, а джанго стандарт де факто, ну и фласк не стал ларавелем для пхп, а так по тихой развивается в сторонке.
Ответ написан
Комментировать
@bIbI4k0
Питоню
Flask хорош и лично мне импонирует больше, чем django. Он лаконичен и продуман, а то, что можно использовать с Flask - SQLAlchemy, webassets, wtforms и Jinja2 на порядок лучше своих аналогов в Django.
Но с другой стороны, Django практически всё умеет из коробки и это всё неплохо "склеено" между собой, имеет единую и однообразную документацию, тучу рецептов и надстроек/батареек. Как следствие - меньшая проблемность и возможность решить поставленные задачи быстрее, что зачастую и является основным фактором выбора фреймворка у дев-компаний.

Пока что flask - это выбор фрилансеров, он отлично подойдет для реализации небольших и средних проектов. Ну а Django - это django. :) Надеюсь, в обозримом будущем ситуация изменится.

P.S. Знаю один серьезный рунет-стартап, реализовавший бекэнд на Flask. Вполне себе работает, правда, пока в бете. :)
Ответ написан
globuzer
@globuzer
gezgrouvingus progreszive ombusgrander greyderzux
обобщив все вышесказанное, обобщив аналитику интернета, можно сказать: дажнго просто круче, поэтому его все и хотят... остальные просто идут в догонку, но дажнго впереди!
Ответ написан
Комментировать
demmsnt
@demmsnt
Программист
Проблемы яйца и курицы. Сайт не на Django не пишут потому, что их нет. Все говорят Python==Django. Если предложить написать на Flask то менеджер проекта скажет, а где я вам спецов найду потом, а если вы заболеете?
Насчет крутизны Django.... Ну не уверен.
Ответ написан
@Nodar
Python, Ruby, JavaScript
Всем Tornado пацаны.
Ответ написан
@korotkin
Автоадминка, продуманная архитектура и легкость входа для написания простых формочек.
Построен вокруг request-resoponse с набором мидельварь и высоким уровнем паранойи.
Те, кто его вибирают уже наверняка знают , что проект стартует быстро и его будет сложно испортить, не говоря уже о куче батареек.
Ответ написан
Комментировать
@Nikl
Все говорят про достоинства, а какими ощутимыми или мало ощутимыми недостатками показал себя Django?
Ответ написан
@Stillgray
Странно, что никто не отметил bottle.py.
Для микропроектов bottle предпочтительнее flask. На порядок проще в освоении.
Поэтому считаю, что полярность, это не flask - django, а bottle - django.
https://www.slant.co/versus/1398/1741/~flask_vs_bottle
Ответ написан
Комментировать
lightarhont
@lightarhont
python/php developer
Та же фигня с Pyramid...
Я уже устал искать работу только на нём...
Фреймворк вроде хороший, но большинство заказчиков...
Ответ написан
Комментировать
@marataziat
Джангист-тракторист
Как по мне Django подходит больше для стартапов, где писать авторизацию пару дней никто не хочет. Или хакатонов чтобы за 2 сутки у тебя был готовый продукт, а не свистоперделка выводящая Hello world!
Почему?
Django makes it easier to build better Web apps more quickly and with less code.
Ответ написан
@Inside89
Я когда выгружал проект джанги с продакшена на дев столкнулся с неприятной такой проблемой с gunicorn, wsgi скрипт который дергал его на изменения и автообновление с автозапуском просто не работал и аналоги его так же не работали, это подтверждали все и единственный совет был писать свой дёргающий код, так как времени на написание своего скрипта не было, оставили как есть с ручным автоперезапуском, переадресация с http / www была просто головная боль, где на апатче делается за секунду, тут нужно штудировать кучу вариантов проб и ошибок для новичка, это тоже существенный минус, опять же для новичков как я и можно было и на апатче это все дело реализовать. Вообщем с запуском реального сервера под джангу на линуксе я намучился. Еще в джанго начинаются танцы с бубном когда начинаешь менять админку под себя, если такая задача стоит где нужно супер пупер админка как например для интернет магазина, то вся польза джанги уходит на нет, я быстрее напишу на чистом python на mvc . В итоге я стал изучать asp.net mvc, этот фреймворк выполнит все ваши хотелки, пускай там и нет такой магии как в джанго, зато гибкость максимальная, для средних и больших проектов подходит отлично, а для маленьких можно и на cms написать или во все типа php modX. В целом джанга понравилась, но не под все проекты точно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы