Google App Engine でサイト管理用のページを作成

app.yaml を使用した管理者アクセス

Google App Engine でサイト管理用の領域を設定するには、app.yaml で定義すると簡単です。

サンプルコード

app.yaml
application: netarrows
version: 1
runtime: python
api_version: 1

handlers:

- url: /admin/.*
  script: admin.py
  login: admin

- url: /.*
  script: main.py
admin.py
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class AdminPage(webapp.RequestHandler):
  def get(self):
      self.response.headers['Content-Type'] = 'text/plain'
      self.response.out.write('Admin Page')

application = webapp.WSGIApplication([('/admin/.*', AdminPage)],debug=True)

def main():
  run_wsgi_app(application)

if __name__ == "__main__":
  main()

ログインしていない状態で、開発用サーバーで"/admin/"にアクセスすると、
いったんログインページが表示されます。「Sign in as Administrator」をチェックしてログインすると、管理用ページが表示されます。チェックしないでログインすると"Current logged in user test@example.com is not authorized to view this page."と表示され、アクセスが拒否されたことが分かります。

参考ページ

app.yaml を使用した強制ログインと管理者アクセス

http://code.google.com/intl/ja/appengine/docs/python/users/overview.html

Python アプリケーションの設定: ログインまたは管理者ステータスの要求

http://code.google.com/appengine/docs/python/config/appconfig.html#Requiring_Login_or_Administrator_Status