0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Мы живём в золотой век web-разработки, имея в своём распоряжении гибкие веб-технологии и массу полезных инструментов и интерфейсов, позволяющих реализовывать замыслы практически любой сложности. И язык программирования Python - один из них.</p>
1
<p>Мы живём в золотой век web-разработки, имея в своём распоряжении гибкие веб-технологии и массу полезных инструментов и интерфейсов, позволяющих реализовывать замыслы практически любой сложности. И язык программирования Python - один из них.</p>
2
<h2>Python и web</h2>
2
<h2>Python и web</h2>
3
<p>Популярность Питона в веб-разработке подтверждается, к примеру, простым взглядом на рейтинг портала<a>HotFrameworks.com</a>. Там можно увидеть, что один из самых популярных фреймворков для создания веб-приложений предназначен именно для<strong>Пайтона</strong>(разумеется, речь идёт о<strong>Django</strong>, который на момент написания материала находился на 6 месте).</p>
3
<p>Популярность Питона в веб-разработке подтверждается, к примеру, простым взглядом на рейтинг портала<a>HotFrameworks.com</a>. Там можно увидеть, что один из самых популярных фреймворков для создания веб-приложений предназначен именно для<strong>Пайтона</strong>(разумеется, речь идёт о<strong>Django</strong>, который на момент написания материала находился на 6 месте).</p>
4
<p>Говоря о вебе, скажем, что Python применяется для<strong>обработки бэкенда и маршрутизации</strong>, где еще в роли конкурентов выступают PHP и Ruby. Ну а web-страницы всё равно следует отображать посредством<strong>HTML/CSS</strong>, причём функциональная часть фронтенда, как и прежде, реализуется на<strong>JavaScript</strong>.</p>
4
<p>Говоря о вебе, скажем, что Python применяется для<strong>обработки бэкенда и маршрутизации</strong>, где еще в роли конкурентов выступают PHP и Ruby. Ну а web-страницы всё равно следует отображать посредством<strong>HTML/CSS</strong>, причём функциональная часть фронтенда, как и прежде, реализуется на<strong>JavaScript</strong>.</p>
5
<p>Таким образом, без взаимодействия разных технологий и интерфейсов (interface) не обойтись. Но это не проблема, ведь<strong>Python-фреймворки</strong>позволяют существенно упрощать это взаимодействие. Тот же Django включает в себя систему шаблонов, обеспечивающих написание специальных HTML-файлов, которые могут вставлять Python-код, взаимодействуя с данными из бэкенда. Этот тип взаимодействия принято называть<strong>Full Stack</strong>-фреймворком. С его помощью вы сможете работать с шаблонами web-страниц, запросами маршрутизации, хранилищами баз данных, системами, обрабатывающими HTTP-запросы, и т. д.</p>
5
<p>Таким образом, без взаимодействия разных технологий и интерфейсов (interface) не обойтись. Но это не проблема, ведь<strong>Python-фреймворки</strong>позволяют существенно упрощать это взаимодействие. Тот же Django включает в себя систему шаблонов, обеспечивающих написание специальных HTML-файлов, которые могут вставлять Python-код, взаимодействуя с данными из бэкенда. Этот тип взаимодействия принято называть<strong>Full Stack</strong>-фреймворком. С его помощью вы сможете работать с шаблонами web-страниц, запросами маршрутизации, хранилищами баз данных, системами, обрабатывающими HTTP-запросы, и т. д.</p>
6
<p>Но существуют и не Full Stack-фреймворки, а так называемые микрофреймворки, обрабатывающие лишь базовую логику. Они более гибкие, изучаются в кратчайшие сроки, но потребуют от вас каждый раз изобретать велосипед, ведь для сторонних работ их придётся объединять с шаблонизаторами, сторонними БД и прочее.</p>
6
<p>Но существуют и не Full Stack-фреймворки, а так называемые микрофреймворки, обрабатывающие лишь базовую логику. Они более гибкие, изучаются в кратчайшие сроки, но потребуют от вас каждый раз изобретать велосипед, ведь для сторонних работ их придётся объединять с шаблонизаторами, сторонними БД и прочее.</p>
7
<h2>Пайтон и другие языки</h2>
7
<h2>Пайтон и другие языки</h2>
8
<p>Может возникнуть закономерный, но риторический вопрос: "Если я использую JavaScript для внешнего интерфейса, почему я не могу применять тот же JavaScript для бэкенда?" И это действительно так, но то же самое можно сказать и про PHP, ведь язык востребован, существует десятилетиями и имеет большое количество технической документации. Следовательно, для бэкенда прекрасно подходит и PHP.</p>
8
<p>Может возникнуть закономерный, но риторический вопрос: "Если я использую JavaScript для внешнего интерфейса, почему я не могу применять тот же JavaScript для бэкенда?" И это действительно так, но то же самое можно сказать и про PHP, ведь язык востребован, существует десятилетиями и имеет большое количество технической документации. Следовательно, для бэкенда прекрасно подходит и PHP.</p>
9
<p><strong>Вывод прост</strong>: большинство задач при разработке веба вы сможете решить с применением любого языка. По-настоящему важно лишь то, насколько удобно вам это делать на выбранном языке. Таким образом, если вы предпочитаете Питон, зачем от него отказываться и тратить время на изучение чего-нибудь другого? Сегодня использование этого языка для веба обычное явление (it's common).</p>
9
<p><strong>Вывод прост</strong>: большинство задач при разработке веба вы сможете решить с применением любого языка. По-настоящему важно лишь то, насколько удобно вам это делать на выбранном языке. Таким образом, если вы предпочитаете Питон, зачем от него отказываться и тратить время на изучение чего-нибудь другого? Сегодня использование этого языка для веба обычное явление (it's common).</p>
10
<h2>Frameworks</h2>
10
<h2>Frameworks</h2>
11
<p>Мы уже говорили о том, что веб-разработка на Python предполагает использование специальных фреймворков. Их много, и каждый по-своему хорош. Обычно проблем с документацией, сообществами и официальной поддержкой не возникает.</p>
11
<p>Мы уже говорили о том, что веб-разработка на Python предполагает использование специальных фреймворков. Их много, и каждый по-своему хорош. Обычно проблем с документацией, сообществами и официальной поддержкой не возникает.</p>
12
<p>Наиболее известны фреймворки<strong>Django</strong>и<strong>Flask</strong>. Мы уже о<a>них писали</a>, поэтому повторяться не будем. Разве что, упомянем такой фреймворк, как<strong>Pyramid</strong>- некий компромиссе между Flask и Django. Да, Pyramid не настолько функционален, но удобен и прост, плюс имеет достаточно средств для организации большинства web-приложений. Также он имеет широкую библиотеку как официальных, так и неофициальных плагинов, используя которые, вы успешно реализуете необходимые замыслы.</p>
12
<p>Наиболее известны фреймворки<strong>Django</strong>и<strong>Flask</strong>. Мы уже о<a>них писали</a>, поэтому повторяться не будем. Разве что, упомянем такой фреймворк, как<strong>Pyramid</strong>- некий компромиссе между Flask и Django. Да, Pyramid не настолько функционален, но удобен и прост, плюс имеет достаточно средств для организации большинства web-приложений. Также он имеет широкую библиотеку как официальных, так и неофициальных плагинов, используя которые, вы успешно реализуете необходимые замыслы.</p>
13
<h2>Python и real life</h2>
13
<h2>Python и real life</h2>
14
<p>А как быть с реальным применением для написания веба? Тут всё очень неплохо, достаточно вспомнить лишь следующие проекты, реализованные посредством Python. Просто загибайте пальцы: - YouTube, - Google, - Reddit, - Instagram, - DropBox, - FireFox, - Pinterest и многие другие.</p>
14
<p>А как быть с реальным применением для написания веба? Тут всё очень неплохо, достаточно вспомнить лишь следующие проекты, реализованные посредством Python. Просто загибайте пальцы: - YouTube, - Google, - Reddit, - Instagram, - DropBox, - FireFox, - Pinterest и многие другие.</p>
15
<p>Да, в некоторых проектах Python применяется лишь частично, но его влияние на web всё же велико.</p>
15
<p>Да, в некоторых проектах Python применяется лишь частично, но его влияние на web всё же велико.</p>
16
<h2>CGI: исполнение простейшего скрипта</h2>
16
<h2>CGI: исполнение простейшего скрипта</h2>
17
<p>Создавать динамические страницы на Питоне можно посредством скриптов CGI. Скрипты CGI представляют собой исполняемые файлы - они выполняются web-сервером, если в URL запрашивается соответствующий скрипт. В этой части статьи мы расскажем про то, как запустить скрипт на локальном сервере и вывести на экран простейшие данные, к примеру, Hello world,.</p>
17
<p>Создавать динамические страницы на Питоне можно посредством скриптов CGI. Скрипты CGI представляют собой исполняемые файлы - они выполняются web-сервером, если в URL запрашивается соответствующий скрипт. В этой части статьи мы расскажем про то, как запустить скрипт на локальном сервере и вывести на экран простейшие данные, к примеру, Hello world,.</p>
18
<h3>Настраиваем локальный сервер</h3>
18
<h3>Настраиваем локальный сервер</h3>
19
<p>В "Пайтон" CGI-сервер уже встроен, поэтому настроить его несложно. Команда ниже позволит запустить его из консоли (если у вас Linux). Причем запускать команду следует из папки, в которой желаем работать:</p>
19
<p>В "Пайтон" CGI-сервер уже встроен, поэтому настроить его несложно. Команда ниже позволит запустить его из консоли (если у вас Linux). Причем запускать команду следует из папки, в которой желаем работать:</p>
20
<p>Если у вас операционная система Windows, запуск Python-файла будет еще проще. Важно, чтобы файл находился в той же папке, в которой планируется работа:</p>
20
<p>Если у вас операционная система Windows, запуск Python-файла будет еще проще. Важно, чтобы файл находился в той же папке, в которой планируется работа:</p>
21
<p>Следующее, что нужно сделать, - открыть браузер и набрать в адресной строке<strong>localhost:8000</strong>.</p>
21
<p>Следующее, что нужно сделать, - открыть браузер и набрать в адресной строке<strong>localhost:8000</strong>.</p>
22
<p>Итог должен быть приблизительно следующим:</p>
22
<p>Итог должен быть приблизительно следующим:</p>
23
<h3>Hello world</h3>
23
<h3>Hello world</h3>
24
<p>Далее в папке, где запускался сервер, следует создать папку cgi-bin. Потом следует создать скрипт hello.py, куда будут включены следующие данные:</p>
24
<p>Далее в папке, где запускался сервер, следует создать папку cgi-bin. Потом следует создать скрипт hello.py, куда будут включены следующие данные:</p>
25
<p>Первая строка свидетельствует, что это Python-скрипт, вторая печатает заголовок, который значит, что это будет html-файл (веб-браузер различает файлы по заголовкам). Третья строка отделяет заголовки от тела ответа, четвертая - печатает "Hello world".</p>
25
<p>Первая строка свидетельствует, что это Python-скрипт, вторая печатает заголовок, который значит, что это будет html-файл (веб-браузер различает файлы по заголовкам). Третья строка отделяет заголовки от тела ответа, четвертая - печатает "Hello world".</p>
26
<p>Останется перейти на localhost:8000/cgi-bin/hello.py, чтобы убедиться, что выводятся данные "Hello world".</p>
26
<p>Останется перейти на localhost:8000/cgi-bin/hello.py, чтобы убедиться, что выводятся данные "Hello world".</p>
27
<p>Если по каким-то причинам что-то не работает, проверьте, правильно ли выставлены права на выполнение.</p>
27
<p>Если по каким-то причинам что-то не работает, проверьте, правильно ли выставлены права на выполнение.</p>
28
<p>Когда мы говорим о вебе, вышеописанные действия -- лишь начало пути. Если хотите двигаться дальше, надо будет: 1) позаботиться об<a>обработке данных и cookies</a>; 2) для обеспечения возможности работы с пользовательскими данными, эти данные надо будет где-либо хранить.<a>Проще всего - хранить данные в файлах</a>(но это не самое практичное и безопасное решение). Лучший способ - хранение данных в базе данных; 3) и вот только после этого можно будет приступить к публикации простейшего приложения в интернете. То есть речь идет о<a>запуске cgi на виртуальном сервере</a>, а не локальном.</p>
28
<p>Когда мы говорим о вебе, вышеописанные действия -- лишь начало пути. Если хотите двигаться дальше, надо будет: 1) позаботиться об<a>обработке данных и cookies</a>; 2) для обеспечения возможности работы с пользовательскими данными, эти данные надо будет где-либо хранить.<a>Проще всего - хранить данные в файлах</a>(но это не самое практичное и безопасное решение). Лучший способ - хранение данных в базе данных; 3) и вот только после этого можно будет приступить к публикации простейшего приложения в интернете. То есть речь идет о<a>запуске cgi на виртуальном сервере</a>, а не локальном.</p>
29
<h2>Обучение</h2>
29
<h2>Обучение</h2>
30
<p>Может появиться вопрос: "Где научиться Python именно в контексте веб-разработки?" Что же, у нас есть на него ответ. В OTUS уже не первый год<a>существует курс</a>, посвящённый именно этому направлению в программировании. Однако никто не мешает вам освоить и общий курс<a>продвинутой разработки на Python</a>. Или даже овладеть профессией с нуля, изучив "<a>Подготовительный курс по Python-разработке</a>". Выбор за вами!</p>
30
<p>Может появиться вопрос: "Где научиться Python именно в контексте веб-разработки?" Что же, у нас есть на него ответ. В OTUS уже не первый год<a>существует курс</a>, посвящённый именно этому направлению в программировании. Однако никто не мешает вам освоить и общий курс<a>продвинутой разработки на Python</a>. Или даже овладеть профессией с нуля, изучив "<a>Подготовительный курс по Python-разработке</a>". Выбор за вами!</p>
31
<p><em>Источники:</em>• http://www.makeuseof.com/tag/python-web-development-build/; • https://pythonworld.ru/web.</p>
31
<p><em>Источники:</em>• http://www.makeuseof.com/tag/python-web-development-build/; • https://pythonworld.ru/web.</p>
32
32