Статья подготовлена для студентов курса «Web-разработчик на Python» в образовательном проекте OTUS.
Мы живём в золотой век web-разработки, имея в своём распоряжении гибкие веб-технологии и массу полезных инструментов, позволяющих реализовывать замыслы практически любой сложности. И язык программирования Python — один из них.
Python и web
Популярность Python в веб-разработке подтверждается, например, простым взглядом на рейтинг портала HotFrameworks.com. В частности, там можно увидеть, что один из самых популярных фреймворков для создания веб-приложений предназначен именно для Python (разумеется, речь идёт о Django, который на момент написания материала находился на 6 месте).
Если говорить о web-приложениях в целом, то Python, как правило, применяется для обработки бэкенда и маршрутизации, где, кстати, в роли конкурентов выступают PHP и Ruby. Что касается web-страниц, то их всё равно следует отображать посредством HTML/CSS, причём функциональная часть фронтенда, как и прежде, реализуется на JavaScript.
Таким образом, без взаимодействия разных технологий не обойтись. Но это не проблема, ведь Python-фреймворки позволяют существенно упрощать это взаимодействие. Например, тот же Django включает в себя систему шаблонов, обеспечивающих написание специальных HTML-файлов, которые могут вставлять Python-код, взаимодействуя с данными из бэкенда. Этот тип взаимодействия принято называть Full Stack-фреймворком. Используя его, вы сможете работать с шаблонами web-страниц, запросами маршрутизации, хранилищами БД, системами, обрабатывающими HTTP-запросы, и т. д.
Впрочем, есть и не Full Stack-фреймворки, а так называемые микрофреймворки, обрабатывающие лишь базовую логику. Они более гибкие, изучаются в кратчайшие сроки, но потребуют от вас каждый раз изобретать велосипед, ведь для сторонних работ их придётся объединять с шаблонизаторами, сторонними БД и прочее.
Python и другие языки
Может возникнуть закономерный, но риторический вопрос: «Если я использую JavaScript для внешнего интерфейса, почему я не могу применять тот же JavaScript для бэкенда?» И это действительно так, но то же самое можно сказать и про PHP, ведь язык востребован, существует десятилетиями и имеет большое количество технической документации. Следовательно, для бэкенда прекрасно подходит и PHP.
Вывод прост: большинство задач веб-разработки вы сможете решить с применением любого языка. По-настоящему важно лишь то, насколько удобно вам это делать на выбранном языке. Таким образом, если вы предпочитаете Python, зачем от него отказываться и тратить время на изучение чего-нибудь другого?
Python и frameworks
Мы уже говорили о том, что веб-разработка на Python предполагает использование специальных фреймворков. Их много, и каждый по-своему хорош. Как правило, проблем с документацией, сообществами и официальной поддержкой не возникает.
Наиболее известны фреймворки Django и Flask. Мы уже о них писали, поэтому повторяться не будем. Разве что, упомянем такой фреймворк, как Pyramid — некий компромиссе между Flask и Django. Конечно, Pyramid не настолько функционален, но удобен и прост, плюс имеет достаточно средств для организации большинства web-приложений. Также он имеет широкую библиотеку как официальных, так и неофициальных плагинов, используя которые, вы успешно реализуете необходимые замыслы.
Python и real life
А как быть с реальным применением Python для написания веб-приложений? Тут всё очень неплохо, достаточно вспомнить лишь следующие проекты, реализованные посредством Python. Как говорится, загибайте пальцы:
— YouTube,
— Google,
— Reddit,
— Instagram,
— DropBox,
— FireFox,
— Pinterest и многие другие.
Да, в некоторых проектах Python применяется лишь частично, но его влияние на web всё же велико.
Python и обучение
Возможно, у вас появился вопрос: «Где научиться Python именно в контексте веб-разработки?» Что же, у нас есть на него ответ. В OTUS уже не первый год существует курс, посвящённый именно этому направлению в программировании. Впрочем, никто не мешает вам освоить и общий курс продвинутой разработки на Python. Или даже овладеть профессией с нуля, изучив «Подготовительный курс по Python-разработке». Как говорится, выбор за вами!
Текст написан на основании статьи «Python on the Web: The Amazing Things You Can Build».