Google Code 提供下列語言介面: English - Español - 日本語 - 한국어 - Português - Pусский - 中文(简体) - 中文(繁體)
「Google 應用服務引擎」根據 Google 基礎架構,提供幾種好用的服務,使用 SDK 中所含之程式庫的應用程式可以進行存取。 其中的一項服務為「使用者」服務,它可以讓您的應用程式與 Google 使用者帳戶整合在一起。有了「使用者」服務,使用者便可以使用其現有的 Google 帳戶登入您的應用程式。
讓我們透過「使用者」服務,個人化應用程式的問候語。
再次編輯 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 物件。
若您的應用程式在「應用服務引擎」上執行,則會將使用者導向至 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 帳戶登入機制會在使用者登入或註冊新帳戶後,將使用者送回此處。
如需進一步瞭解 Users API (使用者 API),請參閱使用者參考資料。
我們的應用程式現在可以用訪客的名稱跟他們打招呼囉!讓我們新增可以讓使用者互相打招呼的功能吧!
繼續瀏覽「以 webapp 處理表單」一節。