App Engine中文教程

使用Google帐户服务|中文版Google App Engine入门指南

Google App Engine提供了很多基于Google框架下的有用的服务,可以通过SDK中提供的类库来调用这些服务。一个很重要的服务就是用户服务,它可以让你的应用程序和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账户登录页面,然后会返回到成功登陆前或者创建用户之前用户所在的页面。

Users类的 API

让我们仔细来看看这些代码:

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账户登录页面。 这个重定向包含了用户所在的页面URI (self.request.uri) 所以之后将会返回到成功登陆前或者创建用户之前用户所在的页面。

想了解更多关于Users类的 API,访问the Users reference


上一页 下一页


如果大家对于教程里的内容有疑问,或是想要参加到教程的编写工作中,欢迎访问:

康爷的博客