GoogleAppEngine再入門(1) -webapp Framework-

前回:GoogleAppEngine再入門(0) - souta-bot log

  • Cmd-Dでmywikiをデプロイ -> エラーログが表示される。
unexpected error occurred. Aborting. 
Error 403: --- begin server output ---
You do not have permission to modify this app (app_id=u'mywiki').
--- end server output ---
If deploy fails you might need to 'rollback' manually.
The "Make Symlinks..." menu option can help with command-line work.
*** appcfg.py has finished with exit code 1 ***

ここで日経ソフトウェア2009年1月号のPart2に移る。

# -*- Coding: utf-8 -*-
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

#リクエストハンドラ
#HTTPのメソッドに対応
class AddTwoNumbers(webapp.RequestHandler):
    #GETメソッドに対応
    def get(self):
        try:
            #default_value="hoge"キーワード引数で取得できなかったときの値を指定
            #allow_multiple=Trueキーワード引数でセレクトボックス等の値をリストで取得
            first = int(self.request.get('first'))
            second = int(self.request.get('second'))

            self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
            self.response.out.write("<html><body><p>%d + %d = %d<p></body></html>" %
                                    (first, second, first + second))

        except(TypeError, ValueError):
            self.response.set_status(500)
            self.response.out.write("An error occured.")

#URL、リクエストハンドラのタプルのリストを引数に
#debug=Trueでエラー時にブラウザでスタックトレースが見れる
application = webapp.WSGIApplication([('/', AddTwoNumbers)], debug=True)

#main関数を作成することが推奨されている
def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()
  • app.yamlのscriptをpractice01.pyにする
  • Cmd-Bでブラウザに表示するとクエリを渡してないのでエラー
An error occured.
300 + 900 = 1200

∩( ・ω・)∩ばんじゃーい

次回:GoogleAppEngine再入門(2) -Datastore API 1- - souta-bot log