Я считаю, что для большинства задач, связанных с разработкой веб-клиентов, проще использовать библиотеку requests. Вы можете просмотреть ее документацию по адресу http://docs.python-requests.org/ (она довольно хорошо написана), чтобы получить более подробную информацию. Я покажу вам основные принципы работы с этой библиотекой в данном разделе и буду использовать ее на протяжении всей книги для решения задач, связанных с веб-клиентами.

Для начала вам нужно установить библиотеку requests в свое окружение Python. Из окна терминала (пользователи Windows должны ввести cmd, чтобы получить к нему доступ) введите следующую команду, чтобы установщик пакетов Python pip загрузил последнюю версию пакета и установил ее:

$ pip install requests

Если у вас возникли трудности, прочтите приложение Г, чтобы узнать подробности о том, как установить и использовать pip.

Переделаем предыдущий вызов сервиса с цитатами с помощью библиотеки requests:

>>> import requests

>>> url = 'http://www.iheartquotes.com/api/v1/random'

>>> resp = requests.get(url)

>>> resp

>>> 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, но он кажется чуть менее объемным.

<p>Веб-серверы</p>

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

Веб-фреймворк предоставляет функции, с помощью которых вы можете построить сайты, поэтому он может решать большее количество задач, чем простой веб-сервер (HTTP). Вы встретитесь с функциями маршрутизации (URL к функции сервера), шаблонами (HTM с динамическими включениями), отладкой и др.

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

<p>Простейший веб-сервер Python</p>

Вы можете запустить простейший веб-сервер, просто введя одну строку кода Python:

$ python — m http.server

С помощью этой строки вы реализуете примитивный Python HTTP server. Если никаких проблем не возникло, вы увидите исходное сообщение о статусе:

Serving HTTP on 0.0.0.0 port 8000…

Запись 0.0.0.0 означает любой адрес TCP, поэтому веб-клиенты могут получать к нему доступ независимо от того, какой адрес имеет сервер. В главе 11 вы можете прочитать о некоторых низкоуровневых деталях TCP и других системах соединения в сеть.

Теперь вы можете запрашивать файлы, чьи пути относительны к вашему текущему каталогу, и они будут вам возвращены. Если вы введете в своем браузере строку http://localhost:8000, то должны увидеть список каталогов, и сервер выведет на экран строки обращения к журналам наподобие следующих:

127.0.0.1 — [20/Feb/2013 22:02:37] "GET / HTTP/1.1" 200 -

localhost и 127.0.0.1 являются для TCP синонимами вашего локального компьютера, поэтому они сработают независимо от того, подключены ли вы к Интернету. Вы можете интерпретировать эти строки следующим образом.

• 127.0.0.1 — это IP-адрес клиента.

• Первый символ — это имя удаленного пользователя, если он присутствует.

• Второй символ — это имя авторизующегося пользователя, если требуется.

• [20/Feb/2013 22:02:37] — это дата и время доступа.

• "GET / HTTP/1.1" — это команда, отправленная веб-серверу:

• метод HTTP (GET);

• запрошенный ресурс (/, верхний уровень);

• версия HTTP (HTTP/1.1).

• Последнее число (200) — это код статуса HTTP, возвращенный веб-сервером.

Щелкните на любом файле. Если ваш браузер может распознать его формат (HTML, PNG, GIF, JPEG и т. д.), он должен отобразить его, и сервер занесет этот запрос в журнал. Например, если в вашем текущем каталоге имеется файл oreilly.png, запрос http://localhost:8000/oreilly.png должен вернуть изображение встревоженной зверушки, показанное на рис. 7.1, а в журнале должна появиться похожая запись:

Перейти на страницу:

Все книги серии Бестселлеры O'Reilly

Похожие книги