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。
上一页 下一页