Google Code предлагается на следующих языках: English – Español – 日本語 – 한국어 – Português – Pусский – 中文(简体) – 中文(繁體)
Google App Engine предоставляет несколько полезных служб на основе инфраструктуры Google, которые доступны приложениям, использующим библиотеки, включенные в SDK. Одна из них – служба Users, позволяющая интегрировать приложение с аккаунтами пользователей Google. С помощью этой службы пользователи смогут применять для входа в ваше приложение свои аккаунты Google.
Воспользуемся службой Users для персонификации этого приложения приветствия.
Снова откройте файл helloworld/helloworld.py и замените его содержание следующим:
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self):
user = users.get_current_user()
if user:
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, ' + user.nickname())
else:
self.redirect(users.create_login_url(self.request.uri))
application = webapp.WSGIApplication(
[('/', MainPage)],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
Обновите страницу в браузере. Приложение перенаправит вас на локальную версию страницы входа Google, которая подходит для тестирования приложения. На этом экране можно указать любое имя пользователя, и приложение увидит имитацию объекта User, основанного на этом имени.
При работе приложения в App Engine пользователи будут направляться на страницу входа в аккаунт Google, а после успешного входа или создания аккаунта – обратно к вашему приложению.
Рассмотрим новые фрагменты кода подробнее:
user = users.get_current_user()
Если пользователь уже вошел в приложение, метод get_current_user() возвращает объект User пользователя. В противном случае он возвращает значение None.
if user:
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, ' + user.nickname())
Если пользователь выполнил вход в систему, нужно отобразить для него персональное сообщение, используя псевдоним, связанный с его аккаунтом.
else: self.redirect(users.create_login_url(self.request.uri))
Если пользователь не выполнил вход, укажите webapp, что браузер пользователя нужно перенаправить на страницу входа в аккаунт Google. Перенаправление содержит URL этой страницы (self.request.uri), чтобы механизм входа в аккаунт Google отправил пользователя обратно после выполнения входа или регистрации нового аккаунта.
Подробнее об API пользователей рассказано в справочном руководстве по API пользователей.
Теперь наше приложение может приветствовать пользователей по именам. Добавим функцию, позволяющую пользователям приветствовать друг друга.
Переходите к разделу Работа с формами в webapp.