• Официальный сайт SDK
  • Сайт с примерами кода

Hello, World!

Для взаимодействия с web сервером приложения, написанные под платформу Google App Engine, используют стандарт CGI. Когда сервер получает запрос от пользователя, он запускает приложение и передает ему данные запроса через переменные окружения либо через стандартный поток ввода (для запросов типа POST). Обрабатывая запрос, приложение выдает информацию в стандартный поток вывода, включая данные заголовков протокола HTTP и само содержание ответа.

Давайте напишем маленькое приложение, которое будет отображать короткое сообщение.

Создание простого обработчика запросов

Создайте каталог helloworld для нашего проекта. Все файлы приложения мы будем размещать в этом каталоге.

Внутри каталога helloworld, создайте файл helloworld.py и поместите в него следующее содержимое:

PHNwYW4gY2xhc3M9Imt3ZCI+cHJpbnQ8L3NwYW4+PHNwYW4gY2xhc3M9InBsbiI+IDwvc3Bhbj48c3BhbiBjbGFzcz0ic3RyIj4nQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluJzwvc3Bhbj48c3BhbiBjbGFzcz0icGxuIj48YnI+PC9zcGFuPjxzcGFuIGNsYXNzPSJrd2QiPnByaW50PC9zcGFuPjxzcGFuIGNsYXNzPSJwbG4iPiA8L3NwYW4+PHNwYW4gY2xhc3M9InN0ciI+Jyc8L3NwYW4+PHNwYW4gY2xhc3M9InBsbiI+PGJyPjwvc3Bhbj48c3BhbiBjbGFzcz0ia3dkIj5wcmludDwvc3Bhbj48c3BhbiBjbGFzcz0icGxuIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJzdHIiPidIZWxsbywgd29ybGQhJzwvc3Bhbj4==

Этот код на языке Python будет отвечать на запрос сервера, передавая заголовок HTTP, пустую строку и само содержание страницы с сообщением Hello, world!.

Создание файла конфигурации

Приложения платформы App Engine содержат файл конфигурации с именем app.yaml. Храня в себе различные настройки, этот файл также содержит схему URL, которая используется для сопоставления с различными обработчиками.

Создайте файл app.yaml внутри каталога helloworld со следующим содержимым:

YXBwbGljYXRpb246IGhlbGxvd29ybGQKdmVyc2lvbjogMQpydW50aW1lOiBweXRob24KYXBpX3ZlcnNpb246IDEKaGFuZGxlcnM6Ci0gdXJsOiAvLioKc2NyaXB0OiBoZWxsb3dvcmxkLnB5Cg===

Давайте посмотрим на конфигурацию этого приложения сверху вниз:

  • Идентификатор приложения - helloworld. Когда вы регистрируетесь в App Engine, вы должны указать уникальный идентификатор для своего приложения и определить его в этом поле. На период разработки это значение может быть произвольным. Пока давайте оставим его значение - helloworld.
  • Поле version указывает текущий номер версии 1 кода приложения. Если вы измените это значение перед загрузкой обновленной версии на сервер Google, платформа App Engine сохранит предыдущую версию проекта и, в случае каких-либо неполадок, позволит вернуться к ней через административную консоль.
  • Следующие два поля, которые содержат значение python указывают, что для приложения используется среда выполнения Python версии "1". В будущем, после появления поддержки других языков и сред кроме Python, возможно будет указать другие значения.
  • Каждый запрос к URL, который совпадает с регулярным выражением /.* (это значит все URL) должен быть обработан скриптом helloworld.py.

Для конфигурационного файла используется формат разметки YAML. Для уточнения всех опций конфигурации приложения смотрите описание app.yaml.

Тестирование приложения

Наше приложение готово. Мы определили код обработчика запроса на любой URL. Теперь можно проверить работу приложения через web сервер, входящий в комплект App Engine SDK.

Запустите web сервер следующей командой, указав путь к каталогу с нашим приложением helloworld:

Z29vZ2xlX2FwcGVuZ2luZS9kZXZfYXBwc2VydmVyLnB5IGhlbGxvd29ybGQvCg===

Web сервер запущен и принимает входящие запросы по порту 8080. Проверьте работу приложения, перейдя по ссылке:

  • http://localhost:8080/

Чтобы получить дополнительную информацию о возможностях запуска web сервера разработки, смотрите описание web сервера разработки либо запустите его с параметром --help.

Дальнейшая разработка

Вы можете не прерывать работу web сервера и продолжать разработку приложения. В процессе изменения кода, сервер будет находить изменения в файлах и при необходимости их пересчитывать.

Попробуйте: не завершая web сервер, поменяйте в файле helloworld.py строчку Hello, world! на что-нибудь другое. Обновите страницу http://localhost:8080/ в своем браузере и увидите изменения.

Для завершения работы сервера в окне терминалов нажмите комбинацию клавиш Control-C (либо специальную клавишу "Break" на вашей клавиатуре).

На протяжении изучения этого руководства можно оставить web сервер запущенным в фоне. Если появится причина остановить его, повторно можно будет запустить его той же командой.

Далее...

Мы закончили создание первого приложения! Теперь можно загрузить его на сервер Google и показать его всему миру. Однако, перед этим мы рассмотрим механизм использования web-фреймворка для дальнейшего эффективного добавления новых возможностей в наш проект.

Перейти к Использование web-фреймворка.