Google App Engine 入门:用户系统服务
May 4th, 2008
(本文译自:Google App Engine Getting Started)
Google App Engine 在其SDK中提供了很多有用的服务。其中之一就是用户系统服务,这个服务让我们可以轻松的集成Google的用户帐号系统,这样使用我们的应用的用户,就不需要注册单独的帐号,直接使用现有的Google帐号就可以登录了。
下面,我们为Hello word加入用户判断功能。
使用Users
重新编辑helloworld/helloworld.py, 将代码修改如下:
import wsgiref.handlers
from google.appengine.api import users
from google.appengine.ext import webapp
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))
def main():
application = webapp.WSGIApplication(
[(‘/’, MainPage)],
debug=True)
wsgiref.handlers.CGIHandler().run(application)
if __name__ == “__main__”:
main()
刷新页面,你会发现直接跳转到了本地模拟的Google登录页面了,在这个页面输入你的用户名,你的web应用程序就会为你生成一个 User 对象。
当你发布你的应用之后,这个程序将会直接跳转到真正的Google登录页面,等你登录成功后再跳转到你的程序页面。
The 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 帐号登录页面。这个跳转页面包含了登录成功后要返回的URL (self.request.uri),用户登录成功后,就会回到指定的页面了。
想了解更多信息, 请查看 the Users reference.
接下来…
我们的应用程序,已经实现了可以显示登录者的名字了,接下来我们将为它增加留言的功能。
下一章 处理表单数据.
