Джанго освобождённый: как популярный Python-фреймворк экономит время и приносит доход

Колонка от образовательного портала GeekBrains, автора курса "Веб-разработчик Python (Django)".

Подобно герою известной киноленты, веб-фреймворк Django — невероятно ловкий и мощный инструмент для достижения цели. Это не парень из вселенной Marvel, который помогает всем подряд, совершая минимум действий: его благосклонность надо заслужить. Иначе говоря, успеха добьётся лишь тот, кто готов немного пострадать и набить шишек во время обучения.

Однако, это не отталкивает пользователей, а напротив привлекает их всё больше. Почему? Давайте разбираться.

Язык Python

Python имеет невероятно простой синтаксис, минимум служебных символов и очень понятные конструкции программ. Всё это делает его одним из наиболее часто рекомендуемых языков в качестве первого.

Кроме того, в отличие от PHP, Python является универсальным языком, чьи возможности распространяются далеко за пределы веба. Вы всегда можете добавить в своё приложение немного математики, статистики, графики и даже ИИ — всего этого лишены популярные языки веба.

Скорость разработки

Да, возможно на первых этапах обучения вам придётся действительно тяжело. Даже на освоение базовых возможностей Django уйдёт несколько десятков часов. Однако, после стартовых трудов вы понемногу начнёте понимать, насколько сильно упрощает использование Django создание типовых элементов веб-страницы: списков, карты сайта, аутентификации пользователя и многого другого. Получив необходимые навыки, у вас не составит труда заменить некогда огромные блоки кода всего несколькими строками.

Доступность

Django — open-source проект со всеми вытекающими преимуществами. Это означает, что этот фреймворк удобно использовать в стартапах и небольших компаниях — там, где первостепенное значение имеет скорость реализации идеи и её стоимость. И конечно, open-source проект — очевидный выбор для новичка, которому не хочется тренироваться на усечённых версиях коммерческих продуктов вместо того, чтобы сразу взяться за готовый инструмент заработка.

Сообщество и литература

Django является одним из самых популярных веб-фреймворков: только запущенных сайтов, разработанных на нём, в сети почти 65 тысяч. Разумеется, такая популярность означает огромное количество сообществ, где может получить помощь новичок и уже работающий программист.

Кроме того, у Django очень крутая прилагаемая литература. Достаточно подробно описана теория, имеются «обучалки», примеры, техническая информация — в общем всё, что может понадобится страждущему.

Масштабируемость

Django, благодаря встроенным инструментам, прекрасно справляется с задачей создания высоконагруженных сайтов. Это важно, ведь почти 20% сайтов, созданных с использованием этого фреймворка, относятся к бизнес-сектору. Кроме того, с использованием Django достаточно легко увеличивать сложность веб-ресурса, стартуя с одностраничной визитки и наращивая функциональность по мере повышения спроса.

Безопасность

Помимо того, что сам Python для новичка является более надёжным языком, нежели PHP, так ещё и Django имеет множество встроенных инструментов для обеспечения безопасности пользователей. О наличии быстро встраиваемой системы аутентификации, которую можно легко ввернуть в сайт, мы уже написали. Также есть проверки на популярные ошибки: SQL-инъекции, подделка запросов, clickjacking, обработка межсайтовых скриптов.

Нет, конечно, разработка ресурсов на Django — не гарантия безопасности, но определённо это хороший инструмент для её обеспечения.

Востребованность

Мы не будем говорить, что все биржи труда завалены предложениями за кучу денег разработать сайт на Django. В сущности, большинству заказчиков не важны инструменты исполнителя. Но Django — один из лучших способов быстро и качественно сделать интернет-магазин или веб-блог, а значит с его помощью можно заполучить много заказов как для заработка, так и для набивания портфолио. Таким образом, знание Django — практически гарантия успешного трудоустройства в мире IT.

Если говорить о конкретных цифрах, то это свыше 1000 вакансий на агрегаторе trud.com и более 200 фриланс-проектов на Upwork.com. Эти цифры наглядно демонстрируют заинтересованность работодателей в специалистах, работающих на Django.

Герой фильма «Джанго освобождённый» прошёл длинный путь от раба со шрамами на спине до ковбоя на гарцующей лошади. Python и Django могут вам подарить схожее приключение: от простого пользователя до настоящего творца интернета. Дело за малым — проявить соответствующую волю, старательность и заработать немного удачи. Ведь без неё не смог бы справиться даже тот самый Джанго.

0
46 комментариев
Написать комментарий...
Денис Евграфов

очень смешная статья

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Артём Лисовский

качеством кода надо сравнивать языки программирования. так как говно может быть и на C++, а красивый и хорошо работающий код хоть на visual basic.
куча проектов работает на разных технологиях. и работает.

Ответить
Развернуть ветку
Артём Лисовский

также как и ломаются кучи сайтов на кучах технологий у куч проектов.

Ответить
Развернуть ветку
Kirill Ivanoff

Я бы хотел увидеть такую строчку в статье:
"Amazon, Google, Facebook полностью написаны на Django"

Ответить
Развернуть ветку
Хаитмамат Атаулов

Сначала подумал, что о slave/master будет.

Ответить
Развернуть ветку
Kirill Ivanoff

Сейчас это уже неполиткорректно

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Выпил ли mojo?

Где-то существуют асинхронные конструкторы?

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Выпил ли mojo?

Я не только про питон, а вообще про ООП.
Конструктор по своему смыслу должен возвращать инстанс класса, а не какую-то непонятную фьючу.
Хочется асинхронно инициализировать - статические методы и фабрики в помощь.

Ответить
Развернуть ветку
Артём Лисовский

все зависит от задач

Ответить
Развернуть ветку
Сергей Семенов

Ценность статьи равна нулю, просто мусор с рекламой курсов...

Ответить
Развернуть ветку
Сергей Бакотин

Сам язык и фреймворк - отличные, но есть нюанс. Читаем статью на эту тему и подгорания в комментариях:

https://habr.com/post/322332/

Ответить
Развернуть ветку
Артём Лисовский

какой нюанс-то?
«питон не нужно учить, потому что я не нашёл работу»
это не нюанс, это булшит жопорукого прогера.
хороший находит работу всегда вне зависимости от технологий, которыми владеет.

Ответить
Развернуть ветку
Сергей Бакотин

"Коучинг — проведение на личностный рост с людьми онлайн/оффлайн"

Ясно понятно, на этом любые комментарии от тебя можно воспринимать. Иди дальше колядуй успехом и трудолюбием=)

Ответить
Развернуть ветку
Артём Лисовский

вы по контенту давайте.
ключевые слова из поисковиков за 2014 год выбирать и ими прикрываться - это не очень профессионально.

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Выпил ли mojo?

Весь нормальный мэшинлернинг на питоне.

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Артём Лисовский

any технология востребована в своем бизнесе

в бизнесе не востребованный. В production тем более.

не буду разводить холиваров, но это неправда. и в бизнесе востребован и в production.
сказка про хорошего программиста такова - если ты знаешь как реализовать что-либо ты сможешь использовать любой инструментарий.
Я не думаю, что вы не сможете, зная python закодить аналогичное на php или nodejs. Если вы понимаете в чем разница между GET и POST запросами, если представляете, что для отображения страницы по запросу надо вернуть шаблон итд, то это будет примерно одинаково на any языке.

сайт = запрос + логика / логика с запросами бд и их обработкой + ответ

в итоге у хорошего программиста нет топки за технологию. есть понимание, что одно и тоже занимает на разных технологиях разное время в плане разработки и зависит от задач: для асинхрона или вебсокетов лучше заюзать nodejs - там это будет быстрее и корректнее работать, чем на python. для быстрой кастомной админки с ORM - django реально хороший выбор. для простенького сайта из страниц и блога лучше wp вряд ли что-то будет.
так что программист - это не умение программировать на py/php/... это склад ума. как с инженерами - если ты понимаешь как двигатель работает, то ты разберешь и соберешь условно любой. не сразу, но сможешь.

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Артём Лисовский

Приходите вы на собеседование на Python, а там graphql в связке с бд вместо orm, elastic для выборок по бд, redis для подгрузки списков аяксом, memcached для кеширования страниц, сборщики на nodejs, quart вместо любимого asyncio и тп.
Конечно вас побреют с вашим классным Python, потому что кроме python вы ничего не знаете из того, с чем предстоит работать. Это говорит только об одном - вы выучили язык, но не умеете пользоваться инструментами. Вы знаете как использовать базовые конструкции. Чтобы сделать сайт вам вряд ли придется пользоваться полиморфизмом, о котором вы так много читали. Скорее вам нужно будет понимание как подключиться к mysql и как составить запрос или как этот запрос сделать при помощи orm.

профессионально знаю 8-9 языков

начнем с этого. что значит профессионально знаете? умеете делать if и foreach? функции писать и вызывать? описывать класс и создавать объекты? В конечном итоге если смотреть на разработку - пофиг вообще на чем писать. Главное понимать как инструменты работают и в чем их суть. Вряд ли вы пишите сайт на чистом python без использования либ или на чистом php. Скорее всего вы знаете парочку фреймворков и можете заюзать кучу либ и кода с github/stackoverflow.
Это применимо не ко всему, безусловно, но к доброму большинству разработки. Юзер совершил действие(на сайте/в приложении/...), нужно отреагировать.

Поэтому когда вы перейдете на новый язык - все ваши знания обнулятся.

Везде одни и те же ifы и foreachи, одни и те же принципы ООП. Давайте конкретный пример, если он есть, конечно.

Во-первых, я каждого языка есть огромное количество нюансов.

Везде почти одинаковый базис. Особенно в высокоуровневых языках.

И никакой опыт в других языках вам не поможет набить все эти шишки. У каждого языка огромное количество библиотек (со своими багами, нюансами, архитектурными паттернами), фреймворков и т.п.

О чем и речь, что сам язык(практически независимо от его названия) нужен для галочки. Вам нужно научиться работать с 3rd party либами, понять принцип работы с ними, no more.

Практически всё придётся изучать с нуля - чтобы что-то приличное написать на новом языке.

Это не правда.
Конструкции слишком похожи везде. От if заканчивая async await.

У вас есть фантазийная реальность, выдуманная.

Не факт, что все не с точностью наоборот.
Спокойно разберусь в любом современном коде вне зависимости от языка. Где-то будет object.method, где-то object->method(), где-то [object method] , где-то иначе. Суть не в этом. Я разберусь, даже если не видел никогда ранее этот язык(кроме brainfuckов конечно). Поэтому не в языке суть. Язык не важен. Важно то, как у вас голова работает.

Понятно, что на интервью вам могут задать вопрос, после которого вы войдете в ступор. Типа - "отправьте 10 запросов одновременно и покажите результат, как только все 10 выполнятся", а до этого вы только с синхроном работали. И самое обидное, что этот тривиал описан на главной странице библиотеки asyncio. Это не повод брить кандидата. Но это и не повод говорить "я не нашел работу, поэтому python говно". Просто ты инструмент, важный для них, не рассмотрел. У меня было так. Поэтому все равно на чем кодить, главное задачи закрывать.

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Артём Лисовский

Мы точно один материал обсуждаем? Там один парень говорит что python говно, потому что он выучил и не смог устроиться. Давайте с этой стороны смотреть?

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Артём Лисовский

В итоге - на изучение ру потратишь 20ч, на скалу 200ч. Реально говно, простите:)

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Артём Лисовский

в долине другая история:
https://www.quora.com/What-are-the-top-programming-languages-used-in-Silicon-Valley/answer/Rakesh-Wagh
говорят Python растет по популярности и обгоняет js

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Артём Лисовский

js может быть фронт.
сравните бек с беком.
про сложность очень субъективное.
в итоге смотрим по миру:
https://stackify.com/wp-content/uploads/2017/12/top-programming-languages-1.png
в РФ плохой бизнес видимо ;)

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Николай Козлов

Документация на русском хуже чем на php.net, про какую то особую производительность и защиту от уязвимостей тоже бред. Вывод про блог и интернет магазин вообще наркоманский.

Ответить
Развернуть ветку
Mark Rapida Gromov

официальную доку читайте. и код

Ответить
Развернуть ветку
Артём Лисовский

если брать в среднем по больнице, то WP который на PHP взламывают чаще, чем django/..
в PHP ты должен многое предусматривать, если за тебя это не сделал фреймворк, поэтому в плане защиты змей чаще выигрывает.

Ответить
Развернуть ветку
Николай Козлов

Гуглите Закон Линуса.

Ответить
Развернуть ветку
Todd

Когда у тебя утиная типизация без разницы какой фреймворк. Даже супер пупер современные IDE типа PyCharm не помогут. 99% нагрузки в итоге ложатся на разработчика, а это каким бы скиластым он не был - человеческий фактор. И так далее :)

Ответить
Развернуть ветку
Выпил ли mojo?

Без строгой типизации я бы так и не узнал, зачем мне ide вместо редактора.

Ответить
Развернуть ветку
Артём Лисовский

отличный комментарий :)

Ответить
Развернуть ветку
Артём Лисовский

поясните кейс. не то, чтобы топлю за Python, просто ни разу не столкнулся.
это каким надо быть дураком, чтобы не знать что у тебя в переменной лежит. или ваши функции отдают то массив, то объект? не пишите такие ф-ии.

Ответить
Развернуть ветку
Lev Romanov

Вот вы умный и ни разу не дурак. И функция у вас возвращает какую-то хитрую структуру (словари листов словарей, например). И вдруг вы поняли, что нужно изменить структуру возвращаемого значения. И теперь перед вами в полный рост встаёт проблема во всех местах использования результата вашей функции, и даже его составных частей обновить его разбор и использование. И ни одного места не пропустить. А статическая типизация вам бы сразу все несоответствия бы показала.

Ответить
Развернуть ветку
Todd

Вам может прилететь откуда-то извне или из используемой либы не то что вы ожидаете и вы просто об этом не узнаете пока в рантайме где-нибудь что-нибудь не упадет :) Конечно все можно оградить и проверять типы и т.п. и тут-то и всплывает что утиная типизация возлагает на разработчика дополнительную нагрузку. Для небольшой утилитки может быть и ок, чтобы быстро налабать.

Чем больше проверяется на уровне компиляции тем меньше ошибок. Незачем держать в голове то что может сделать лучше и без усталости робот-компилятор :)

Ответить
Развернуть ветку
Truba Shatal
Ответить
Развернуть ветку
Артём Лисовский

Django слишком избыточная. Мы юзаем чаще Flask, он обладает нужным базовым функционалом, остальное - модулями доводится - orm/формы/...

Ответить
Развернуть ветку
Mark Rapida Gromov

ну да, конда разработчики фласка не рекомендуют его использовать на серьезных проектах, все бегут его использовать на серьезных проектах. не нужна избыточность — pyramid

Ответить
Развернуть ветку
Артём Лисовский

дайте ссылку.
если flask/.. может сервить достаточно быстро один запрос, значит сможет и много. а значит надо копать не в сторону flask, а в сторону uwsgi/nginx/балансеров/кеширования/...
Понятно, что если у вас в проекте, чтобы открыть страницу, нужно совершить 50 запросов к бд, то при 200 пользователях онлайн он будет тупить как девка с того видео. Но это не проблема фреймворка.

Ответить
Развернуть ветку
Mark Rapida Gromov

https://trypyramid.com
enterprise-ready

Ответить
Развернуть ветку
Артём Лисовский
конда разработчики фласка не рекомендуют

я об этом

Ответить
Развернуть ветку
Mark Rapida Gromov

А. Давно было, я тогда только-только приступал к питону. Сейчас этой строчки не вижу у них, только про веб-сервер, но это и ежу понятно, что их сервер непригоден для деплоя. Видимо, уже можно

Ответить
Развернуть ветку
Артём Лисовский

сервер вы покупаете и на нем запускаете программы. фласк - это фреймворк, который только помогает проще сервировать ответы на запросы и производить выполнение логики. так что ваши догадки ложны.
ежу не понятно - дайте цифры или обоснование. http://klen.github.io/py-frameworks-bench/ вот например. и тут фласк - обычный среднячок. и больше перформенса зависит от того как его готовить будут остальные серверные пункты - nginx/apache/uwsgi/memcached/балансеры и тд. все, что он должен сделать - выполнить вашу логику и ответить на запрос, как только его получил.
пока ваше мнение без обоснования :)

Ответить
Развернуть ветку
Mark Rapida Gromov

вы вообще не туда ушли. попробуйте прочитать внимательно мои сообщения.

Ответить
Развернуть ветку
Артём Лисовский
сервер непригоден для деплоя

1) у них фреймворк
2) деплой - процесс развертывания.
кто и для чего непригоден так и не понял)

Ответить
Развернуть ветку
Mark Rapida Gromov

вы, простите, точно разработчик?

Ответить
Развернуть ветку
Иван Колыхалов

<ИМХО>
Новичкам рекомендовать Питон с Джангой говоря что это просто и легко, все равно, что в качестве первого автомобиля рекомендовать Мустанг с ручной коробкой, говоря что это удобно и сразу стильно. Еще забавляет как ML начинают учить не с графики и пакетов, вроде Rapidminer и Tableau, а сразу по жести через блокнот и ручной программинг нейросетей.
</ИМХО>

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Александр Ерёмин

Если статья с рекламой курсов такое УГ, то и от самих курсов ничего хорошего ждать не стоит

Ответить
Развернуть ветку
43 комментария
Раскрывать всегда