УПРАЖНЕНИЯ
17-1 . Другие языки: измените вызов API в программе python_repos .py так, чтобы на диа-
грамме отображались самые популярные проекты на других языках . Попробуйте такие язы-
ки, как JavaScript, Ruby, C, Java, Perl, Haskell и Go .
17-2 . Активные обсуждения: на основании данных из hn_submissions .py постройте столбцо-
вую диаграмму самых активных обсуждений, проходящих на Hacker News . Высота каждого
столбца должна соответствовать количеству комментариев к каждой статье . Метка столбца
должна включать заголовок статьи, а сам столбец должен служить ссылкой на страницу
обсуждения этой публикации .
17-3 . Тестирование python_repos .py: в python_repos .py для проверки успешности вызова
API выводится значение status_code . Напишите программу test_python_repos .py, которая
использует модуль unittest для проверки того, что значение status_code равно 200 . При-
думайте другие условия, которые могут проверяться при тестировании, — например, что
количество возвращаемых элементов совпадает с ожидаемым, а общее количество репози-
ториев превышает некоторый порог .
378 Глава 17 • Работа с API
Итоги
В этой главе вы узнали, как использовать API для написания программ, авто-
матически собирающих необходимые данные и использующих полученную
информацию для создания визуализации. Мы использовали GitHub API для
получения информации о самых популярных проектах Python на GitHub, а также
в общих чертах рассмотрели API Hacker News. Вы узнали, как с помощью пакета
requests автоматически выдать вызов API к GitHub и как обработать результаты
этого вызова. Также были описаны некоторые средства конфигурации Pygal, по-
зволяющие выполнить дополнительную настройку внешнего вида создаваемых
диаграмм.
В последнем проекте мы используем Django для построения веб-приложения.
Проект 3
.
Веб-приложения
18
Знакомство с Django
Современные веб-сайты в действительности представляют собой многофункцио-
нальные приложения, достаточно близкие к полноценным приложениям для
настольных систем. Python содержит богатый набор инструментов для постро-
ения веб-приложений. В этой главе вы научитесь использовать Django (http://
djangoproject.com/) для построения проекта Learning Log — сетевой журнальной
системы для отслеживания информации, полученной вами по определенной теме.
Мы напишем спецификацию для этого проекта, а затем определим модели для
данных, с которыми будет работать приложение. Мы воспользуемся администра-
тивной системой Django для ввода некоторых начальных данных, а затем научимся
писать представления и шаблоны, на базе которых Django будет строить страницы
нашего сайта.
Django представляет собой веб-инфраструктуру — набор инструментов для постро-
ения интерактивных веб-сайтов. Django может реагировать на запросы страниц,
упрощает чтение и запись информации в базы данных, управление пользователями
и многие другие операции. В главах 19 и 20 мы доработаем проект Learning Log,
а затем развернем его на сервере, чтобы вы (и ваши друзья) могли использовать их.
Подготовка к созданию проекта
В начале работы над проектом необходимо описать проект в спецификации. Затем
вы создадите виртуальную среду для построения проекта.
Написание спецификации
В полной спецификации описываются цели проекта, его функциональность,
а также внешний вид и интерфейс пользователя. Как и любой хороший проект
или бизнес-план, спецификация должна сосредоточиться на самых важных аспек-
тах и обеспечивать планомерную разработку проекта. Здесь мы не будем писать
полную спецификацию, а сформулируем несколько четких целей, которые будут
задавать направление процесса разработки. Вот как выглядит спецификация:
Мы напишем веб-приложение с именем Learning Log, при помощи которого пользователь сможет
вести журнал интересующих его тем и создавать записи в журнале во время изучения каждой
темы . Домашняя страница Learning Log содержит описание сайта и приглашает пользователя заре-
гистрироваться либо ввести свои учетные данные . После успешного входа пользователь получает
Подготовка к созданию проекта 381
возможность создавать новые темы, добавлять новые записи, читать и редактировать существу-
ющие записи .
Во время изучения нового материала бывает полезно вести журнал того, что вы
узнали, — записи пригодятся для контроля и возвращения к необходимой инфор-
мации. Хорошее приложение повышает эффективность этого процесса.
Создание виртуальной среды
Для работы с Django необходимо сначала создать виртуальную среду для работы.
Виртуальная среда представляет собой подраздел системы, в котором вы можете
устанавливать пакеты в изоляции от всех остальных пакетов Python. Отделение
библиотек одного проекта от других проектов принесет пользу при развертывании
Learning Log на сервере в главе 20.
Создайте для проекта новый каталог с именем
learning_log
, перейдите в этот
каталог в терминальном режиме и создайте виртуальную среду. Если вы работаете
в Python 3, то сможете создать виртуальную среду следующей командой:
learning_log$ python -m venv ll_env
learning_log$
Команда запускает модуль
venv
и использует его для создания виртуальной среды
с именем
ll_env
. Если этот способ сработал, переходите к разделу «Активизация
виртуальной среды» на с. 382. Если что-то не получилось, прочитайте следующий
раздел — «Установка virtualenv».
Установка virtualenv
Если вы используете более раннюю версию Python или ваша система не настроена
для правильного использования модуля
venv
, установите пакет
virtualenv
. Уста-
новка
virtualenv
выполняется следующей командой:
$ pip install --user virtualenv
Возможно, вам придется использовать слегка измененную версию этой команды.
(Если вы еще не использовали
pip
, обратитесь к разделу «Установка пакетов Python
с использованием pip» на с. 227.)
Достарыңызбен бөлісу: |