2010/03/26

[Google App Engine]リダイレクト先の設定

昨日のエントリーでは、ログインシステムを構築する方法について書きました。

昨日紹介したプログラムでも稼動するのですが、(ログイン|ログアウト)した後リダイレクト先を設定していないので融通がききません。

そこで、今日は、リダイレクト先が設定できるようにしたいと思います。

まず、前提としてリダイレクト先は、staticファイル、つまり性的ファイルを表示することを念頭におきます。

すると、app.yamlの設定

handlers:
- url: /login
static_files: hoge.html
upload: hoge.html

- url: /logout
static_files: ./foo.html
upload: ./foo.html

- url: /.*
script: test.py

ここでは、loginした後、/loginディレクトリという名のもとで、実際には、hoge.htmlを表示し、一方でログアウトした時は、/logoutという名目でfoo.htmlを表示するように設定しています。

test.pyは↓
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.api import users

class MyHandler(webapp.RequestHandler):
def get(self):
user = users.get_current_user()
if user:
greeting = ("Welcome, %s! (<a href=\"%s\">sign out</a>)" %
(user.nickname(), users.create_logout_url("/logout")))
else:
greeting = ("<a href=\"%s\">Sign in or register</a>." %
users.create_login_url("/login"))

self.response.out.write("<html><body>%s</body></html>" % greeting)


application = webapp.WSGIApplication(
[('/', MyHandler)]
, debug=True)

def main():
run_wsgi_app(application)

if __name__ == "__main__":
main()

実際に動かしてみると正常に動作しました。

これで(ログアウト|ログイン)した後のリダイレクト先が設定できるのでより便利になりました。

1 件のコメント:

  1. >>まず、前提としてリダイレクト先は、staticファイル、つまり性的ファイルを表示することを念頭におきます。
    >>性的
    俺も一発でそう変換されるけど、気をつけような・・・!!
    正しくは精滴。あごめん違うや静的。

    返信削除