Избранное | Русский | Войти

Обзор App Engine для Python

Добро пожаловать в Google App Engine для Python! Благодаря App Engine можно создавать приложения на языке программирования Python и воспользоваться преимуществами библиотек, инструментов и инфраструктур для Python, которые профессиональные разработчики могут использовать для разработки первоклассных веб-приложений. Приложение Python выполняется на масштабируемой инфраструктуре Google и использует масштабируемые службы и постоянное хранение.

Если вы еще не в курсе, почитайте руководство по началу работы с Python, где дано интерактивное введение в разработку веб-приложений с помощью Python и Google App Engine.

Среда выполнения Python

Веб-приложение Python выполняется на веб-сервере App Engine с помощью протокола CGI. Благодаря адаптеру CGI приложение может использовать совместимую с WSGI инфраструктуру веб-приложений. Для упрощения начала работы App Engine включает простую инфраструктуру веб-приложений webapp. Для больших приложений на App Engine хорошо работают сторонние развитые инфраструктуры, такие как Django.

App Engine поддерживает Python 2.5. Интерпретатор Python выполняется в защищенной тестовой среде, что позволяет изолировать приложение в целях обслуживания и безопасности. Интерпретатор может выполнять любой код Python, включая входящие в приложение модули Python, а также стандартную библиотеку Python. Интерпретатор не может загружать модули Python на С. Это среда на чистом Python.

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

Дополнительную информацию можно найти в статье Среда CGI.

Хранилище данных и службы

Приложения могут использовать хранилище данных App Engine для надежного масштабируемого постоянного хранения данных. API Python для хранилища данных App Engine включает мощные инструменты моделирования данных для управления схемами данных. API поддерживает два интерфейса для выполнения запросов к хранилищу данных, включая GQL, язык запросов, подобный SQL, который используется в Консоли администрирования.

Кэш памяти App Engine предоставляет возможность быстрого временного хранения для кэширования результатов расчетов и запросов к хранилищу данных. Интерфейс Python для кэша памяти App Engine совместим с API Memcache Python.

Чтобы получить доступ к ресурсам в сети и установить связь с другими хостами с помощью протоколов HTTP и HTTPS, приложения используют службу получения данных по URL. Приложения Python могут использовать модули urllib, urllib2 или httplib из стандартной библиотеки Python для этой службы или API службы получения данных по URL App Engine.

Приложение может использовать службу Mail, чтобы отправлять электронные сообщения от имени администраторов приложения или пользователя, выполнившего вход.

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

Для аутентификации пользователей приложение может использовать аккаунты Google. Служба аккаунтов Google обрабатывает создание аккаунтов пользователей и выполнение входа. Пользователи, имеющие аккаунты Google (например, аккаунт GMail), могут использовать их для входа в приложение. Приложение может определить, когда текущий пользователь выполнил вход и получить доступ к его адресу электронной почты. API Python может вернуть данные пользователя в объекте, который можно напрямую сохранить в хранилище данных.

Запланированные задачи

В приложении можно задать запланированные задачи для вызова URL приложения через определенные промежутки. Подробнее об этом можно почитать в статье Запуск задач по расписанию.

Инструменты Python

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

В ходе тестирования сервер разработки выполняет приложение на локальном компьютере. Сервер имитирует хранилище данных, службы и ограничения тестовой среды App Engine. Кроме того, сервер разработки может создавать конфигурацию для индексов хранилища данных, основываясь на запросах, выполняемых приложением в ходе тестирования.

Многоцелевой инструмент appcfg.py обрабатывает все взаимодействие через командную строку с выполняемым на App Engine приложением. appcfg.py может добавить приложение в App Engine или просто обновить конфигурацию хранилища данных, что позволит создать новые индексы до обновления кода. Также он может загрузить данные журнала приложения, что позволит проанализировать производительность приложения с помощью собственных инструментов.

SDK Python включает инструмент добавления данных, который позволяет добавлять данные из локальных файлов в хранилище данных приложения. Инструмент может извлекать данные из файлов CSV, в формате таблиц, поддерживаемом большинством программ электронных таблиц, таких как Документы Google и Microsoft Excel. С помощью кода Python можно настроить преобразование файлов CSV в объекты хранилища данных.