Создание web посредством Python | OTUS
Прямо сейчас идет открытый вебинар «Машинное обучение на службе Data Science» . Присоединяйтесь!

Создание web посредством Python

Webdev_Deep_29.1-5020-9673b6.png

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

Python и web

Популярность Питона в веб-разработке подтверждается, к примеру, простым взглядом на рейтинг портала HotFrameworks.com. Там можно увидеть, что один из самых популярных фреймворков для создания веб-приложений предназначен именно для Пайтона (разумеется, речь идёт о Django, который на момент написания материала находился на 6 месте).

Говоря о вебе, скажем, что Python применяется для обработки бэкенда и маршрутизации, где еще в роли конкурентов выступают PHP и Ruby. Ну а web-страницы всё равно следует отображать посредством HTML/CSS, причём функциональная часть фронтенда, как и прежде, реализуется на JavaScript.

Таким образом, без взаимодействия разных технологий и интерфейсов (interface) не обойтись. Но это не проблема, ведь Python-фреймворки позволяют существенно упрощать это взаимодействие. Тот же Django включает в себя систему шаблонов, обеспечивающих написание специальных HTML-файлов, которые могут вставлять Python-код, взаимодействуя с данными из бэкенда. Этот тип взаимодействия принято называть Full Stack-фреймворком. С его помощью вы сможете работать с шаблонами web-страниц, запросами маршрутизации, хранилищами баз данных, системами, обрабатывающими HTTP-запросы, и т. д.

Но существуют и не Full Stack-фреймворки, а так называемые микрофреймворки, обрабатывающие лишь базовую логику. Они более гибкие, изучаются в кратчайшие сроки, но потребуют от вас каждый раз изобретать велосипед, ведь для сторонних работ их придётся объединять с шаблонизаторами, сторонними БД и прочее.

Пайтон и другие языки

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

Вывод прост: большинство задач при разработке веба вы сможете решить с применением любого языка. По-настоящему важно лишь то, насколько удобно вам это делать на выбранном языке. Таким образом, если вы предпочитаете Питон, зачем от него отказываться и тратить время на изучение чего-нибудь другого? Сегодня использование этого языка для веба обычное явление (it's common).

Frameworks

Мы уже говорили о том, что веб-разработка на Python предполагает использование специальных фреймворков. Их много, и каждый по-своему хорош. Обычно проблем с документацией, сообществами и официальной поддержкой не возникает.

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

Python и real life

А как быть с реальным применением для написания веба? Тут всё очень неплохо, достаточно вспомнить лишь следующие проекты, реализованные посредством Python. Просто загибайте пальцы: — YouTube, — Google, — Reddit, — Instagram, — DropBox, — FireFox, — Pinterest и многие другие.

Да, в некоторых проектах Python применяется лишь частично, но его влияние на web всё же велико.

CGI: исполнение простейшего скрипта

Создавать динамические страницы на Питоне можно посредством скриптов CGI. Скрипты CGI представляют собой исполняемые файлы — они выполняются web-сервером, если в URL запрашивается соответствующий скрипт. В этой части статьи мы расскажем про то, как запустить скрипт на локальном сервере и вывести на экран простейшие данные, к примеру, Hello world,.

Настраиваем локальный сервер

В «Пайтон» CGI-сервер уже встроен, поэтому настроить его несложно. Команда ниже позволит запустить его из консоли (если у вас Linux). Причем запускать команду следует из папки, в которой желаем работать:

Screenshot_1-1801-91718b.png

Если у вас операционная система Windows, запуск Python-файла будет еще проще. Важно, чтобы файл находился в той же папке, в которой планируется работа:

Screenshot_2-1801-bdb4e8.png

Следующее, что нужно сделать, — открыть браузер и набрать в адресной строке localhost:8000.

Итог должен быть приблизительно следующим:

Screenshot_3-1801-8eb4dc.png

Hello world

Далее в папке, где запускался сервер, следует создать папку cgi-bin. Потом следует создать скрипт hello.py, куда будут включены следующие данные:

Screenshot_4-1801-23b918.png

Первая строка свидетельствует, что это Python-скрипт, вторая печатает заголовок, который значит, что это будет html-файл (веб-браузер различает файлы по заголовкам). Третья строка отделяет заголовки от тела ответа, четвертая — печатает «Hello world».

Останется перейти на localhost:8000/cgi-bin/hello.py, чтобы убедиться, что выводятся данные «Hello world».

Screenshot_5-1801-e440b3.png

Если по каким-то причинам что-то не работает, проверьте, правильно ли выставлены права на выполнение.

Когда мы говорим о вебе, вышеописанные действия -- лишь начало пути. Если хотите двигаться дальше, надо будет: 1) позаботиться об обработке данных и cookies; 2) для обеспечения возможности работы с пользовательскими данными, эти данные надо будет где-либо хранить. Проще всего — хранить данные в файлах (но это не самое практичное и безопасное решение). Лучший способ — хранение данных в базе данных; 3) и вот только после этого можно будет приступить к публикации простейшего приложения в интернете. То есть речь идет о запуске cgi на виртуальном сервере, а не локальном.

Обучение

Может появиться вопрос: «Где научиться Python именно в контексте веб-разработки?» Что же, у нас есть на него ответ. В OTUS уже не первый год существует курс, посвящённый именно этому направлению в программировании. Однако никто не мешает вам освоить и общий курс продвинутой разработки на Python. Или даже овладеть профессией с нуля, изучив «Подготовительный курс по Python-разработке». Выбор за вами!

Python_970x90-20219-8b1a8e.png

Источники: • http://www.makeuseof.com/tag/python-web-development-build/; • https://pythonworld.ru/web.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто