Создаём веб при помощи Python

Краткий ликбез о применении одного из самых популярных языков программирования.
24 апреля 2017326451Илья Бубнов5550118

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

Вопреки распространенному мнению, Python полезен не только для обработки данных и скриптов. Посмотрите на рейтинг портала HotFrameworks.com, и вы увидите, что пятый по популярности веб-фреймворк создан для работы с Python.

Python и веб-разработка

При разработке веб-приложения Python в основном используется для обработки бэк-энд и маршрутизации, где в роли конкурентов у него PHP и Ruby. Веб-страницы все равно необходимо отображать с использованием HTML и CSS, а функциональная часть фронтэнда по-прежнему выполняется на JavaScript.

В зависимости от того, какой фреймворк Python вы используете, взаимодействия могут существенно упрощаться. Например, Django имеет систему шаблонов для написания специальных HTML-файлов, которые могут вставлять код Python и взаимодействовать с данными из бэк-энда.

Такой тип взаимодействия называется full-stack фреймворком. С его помощью вы можете работать с системами, обрабатывающими HTTP-запросы, хранилищами баз данных, шаблонами веб-страниц, запросами маршрутизации и т. д. С другой стороны, есть и не full-stack фреймворки, которые также называют микрофреймворками, которые обрабатывают только базовую логику. А для сторонних работ они должны быть объединены со сторонними базами данных, шаблонизаторами и т. д.

В общем, full-stack фреймворки имеют более крутые кривые обучения и заставляют вас принимать множество решений относительно структуры, но предоставляют все, что вам нужно. Микрофреймворки могут быть изучены в кратчайшие сроки и являются более гибкими, но вам, скорее всего, каждый раз придётся изобретать велосипед.

Python против других языков

Если вы следите за текстами в нашем блоге, то уже имеете представление о популярных JavaScript-фреймворках, например, React или Angular. Они стремительно развиваются, особенно среди новичков. Многие думают: «Если мне нужен JavaScript для внешнего интерфейса, почему бы не использовать JavaScript для back-end?» И это действительно имеет смысл. А взгляните на PHP — он существует уже много десятилетий, его окружает большое количество документации, он востребован. Тоже вполне себе логичный вариант для back-end.

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

Но отказаться от Python вам будет очень непросто, ведь для любви к нему есть минимум 5 причин.

Python и фреймворки

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

Django — пожалуй, самый известный и популярный фреймворк для веб-разработки с использованием Python. Он поставляется с десятками встроенных модулей, прекрасно собранных и безупречно взаимодействующих друг с другом. Сначала вам потребуется немного времени, чтобы понять алгоритм создания веб-приложений, освоить внутренние структуры на Django. Но как только вы поймёте что к чему, быстрая разработка не станет проблемой. И да, если вы хотите работать веб-разработчиком на Python, знание Django — часто единственный путь.

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

Flask — микрофреймворк, в некотором роде являющийся полном противоположностью Django. Он будет прост и понятен новичку, но обеспечит лишь базовый уровень возможностей, в то время как основную функциональность на себя должны будут взять сторонние интегрированные компоненты. Соответственно полного погружения в предмет Flask вам не подарит, лишь общее представление.

То есть если вы знаете, как и что вам необходимо использовать для реализации задумки, то Flask может стать тем минимальным клеем, что соберёт все воедино. Но если у вас нет ни опыта работы, ни понимания того, как должно функционировать будущее приложение, то Flask — далеко не лучший выбор.

Pyramid — это некий компромиссе между Django и Flask. Данный фреймворк не так функционален, как Django, и не так упрям, как Flask, но прост, удобен и вполне достаточен для организации большинства веб-приложений. Здесь есть большая библиотека официальных и неофициальных плагинов, с помощью которых вы сможете реализовать все задумки для вашего проекта.

Python и реальная жизнь

Если вы дочитали текст до данного раздела, то наверняка хотите увидеть реальные примеры веб-применения Python. Что ж, загибайте пальцы или открывайте новые закладки, кому как удобно: YouTube, Instagram, DropBox, Google, Reddit, Pinterest, FireFox, NASA, Quora и многие-многие другие. Да, где-то Python используется лишь частично, где-то и вовсе его стараются заменять более новыми языками, но влияние на веб у змеиного языка по-прежнему очень велико.

Python и обучение

Теперь остаётся лишь один вопрос: «Где обучиться?». С этим, к счастью, на нашем портале проблем никаких. Хотите — приобретайте целую профессию «Программист Python», хотите лишь отдельный курс «Python. Уровень 1» или «Python. Уровень 2», а хотите просто заручитесь помощью хорошей книги, например из списка «8 книг по Python для начинающих».

Текст основан на статье «Python on the Web: The Amazing Things You Can Build».

webpythondjangoflaskpyramidpython_developer
Нашли ошибку в тексте? Напишите нам.