Простой Python. Современный стиль программирования (Любанович) - страница 162

Модуль webbrowser

Начнем с небольшого сюрприза. Запустите сессию Python в окне терминала и введите следующую строку:

>>>> import antigravity

Эта строка скрыто вызывает модуль стандартной библиотеки webbrowser и перенаправляет ваш браузер по просветительской ссылке. (Если вы по какой-то причине не видите ее, посетите сайт xkcd.)

Вы можете использовать этот модуль непосредственно. Эта программа загружает страницу главного сайта о Python в ваш браузер:

>>>> import webbrowser

>>>> url = 'http://www.python.org/'

>>>> webbrowser.open(url)

>True

Этот код откроет ее в новом окне:

>>>> webbrowser.open_new(url)

>True

А этот — на новой вкладке, если ваш браузер поддерживает вкладки:

>>>> webbrowser.open_new_tab('http://www.python.org/')

>True

Модуль webbrowser заставляет браузер делать всю работу.

API для Сети и Representational State Transfer

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

Вместо того чтобы публиковать веб-страницы, вы можете предоставить доступ к данным через веб-интерфейс программирования приложений (Application Programming Interface, API). Клиенты получают доступ к вашему сервису, делая запросы к URL, и получают ответы, содержащие статус и данные. Вместо HTML-страниц данные имеют формат, который удобнее использовать в других программах вроде JSON и XML (в главе 8 содержится более подробная информация о форматах).

Понятие «передача состояния представления» (Representational State Transfer, REST) было определено Роем Филдингом (Roy Fielding) в его докторской диссертации. Многие продукты имеют REST-интерфейс или интерфейс RESTful. На практике это часто означает, что они имеют веб-интерфейс — определения URL, предназначенные для доступа к веб-сервису.

Служба RESTful использует глаголы HTTP определенными способами, описанными далее:

• HEAD — получает информацию о ресурсе, но не его данные;

• GET — как подразумевает имя, GET получает данные ресурса с сервера. Это стандартный метод, используемый вашим браузером. В любое время, когда вы видите URL с вопросительным знаком (?), за которым следует несколько аргументов, вы можете распознать запрос GET. GET не должен использоваться для создания, изменения или удаления данных;

• POST — этот глагол обновляет данные на сервере. Он часто используется для HTML-форм и сетевых API;

• PUT — этот глагол создает новый ресурс;