Веб-серверы
263
к нему доступ) введите следующую команду, чтобы установщик пакетов Python pip
загрузил последнюю версию пакета и установил ее:
$ pip install requests
Если у вас возникли трудности, прочтите приложение Г, чтобы узнать подроб-
ности о том, как установить и использовать pip.
Переделаем предыдущий вызов сервиса с цитатами с помощью библиотеки
requests:
>>> import requests
>>> url = 'http://www.iheartquotes.com/api/v1/random'
>>> resp = requests.get(url)
>>> resp
<Response [200]>
>>> print(resp.text)
I know that there are people who do not love their fellow man, and I hate
people like that!
-Tom Lehrer, Satirist and Professor
[codehappy] http://iheartquotes.com/fortune/show/21465
Этот пример не сильно отличается от предыдущего, где использовалась библио-
тека urllib.request.urlopen, но он кажется чуть менее объемным.
Веб-серверы
Веб-разработчики обнаружили, что Python хорошо подходит для написания веб-
серверов и программ, работающих на серверной стороне. Это привело к появлению
такого множества фреймворков, написанных на этом языке, что теперь уже стано-
вится трудно исследовать их все и сделать выбор, не говоря уже о том, чтобы ре-
шить, о каких из них поговорить в книге.
Веб-фреймворк предоставляет функции, с помощью которых вы можете построить
сайты, поэтому он может решать большее количество задач, чем простой веб-сервер
(HTTP). Вы встретитесь с функциями маршрутизации (URL к функции сервера),
шаблонами (HTM с динамическими включениями), отладкой и др.
Я не буду говорить в этой книге обо всех фреймворках — рассмотрю лишь те,
которые относительно просты в использовании и подходят для создания настоящих
сайтов. Я также покажу вам, как запускать динамические части сайта с помощью
Python и других составляющих на традиционном веб-сервере.
Простейший веб-сервер Python
Вы можете запустить простейший веб-сервер, просто введя одну строку кода Python:
$ python -m http.server
264
Глава 9. Распутываем Всемирную паутину
С помощью этой строки вы реализуете примитивный Python HTTP server. Если
никаких проблем не возникло, вы увидите исходное сообщение о статусе:
Serving HTTP on 0.0.0.0 port 8000 ...
Запись 0.0.0.0 означает любой адрес TCP, поэтому веб-клиенты могут получать
к нему доступ независимо от того, какой адрес имеет сервер. В главе 11 вы можете
прочитать о некоторых низкоуровневых деталях TCP и других системах соедине-
ния в сеть.
Теперь вы можете запрашивать файлы, чьи пути относительны к вашему теку-
щему каталогу, и они будут вам возвращены. Если вы введете в своем браузере