ページへ戻る
− Links
印刷
Google App Engine for Python その2
の編集 ::
NJF Wiki
xpwiki
:
Google App Engine for Python その2
の編集
# w185f5fa の編集
ページ内容:
*フレームワークの導入 [#w185f5fa] HTMLの入出力部分などを自分で一から作るのは面倒なので、GAEで用意されているフレームワークを使います。いろいろな物が用意されていますが、ここではwebapp2を使います。これを選んだのにはそれほど深い意味はありません。Googleの公式チュートリアルでこれが採用されていて資料が見つかりやすいのが理由です。ゲームデータを保存するだけで実際のWebページを作成するわけでは無いので、フレームワークについてはどれを使ってもそれほど差は出ないと思います。 これを使って前回の記事で作ったHello Worldを作り直すと以下のようになります。 まず、app.yamlです。 application: hello-world-app version: 1 runtime: python api_version: 1 handlers: - url: /.* script: helloworld.application ここで大きく変わったのはscriptのところがファイル名では無く、ファイル名+「.」+変数名となっているところです。これに対応したhelloworld.pyは import webapp2 class HelloWorld(webapp2.RequestHandler): def get(self): self.response.headers['Content-Type'] = "text/plain; charset=utf-8" self.response.write("Hello, world!") application = webapp2.WSGIApplication( [('/', HelloWorld), ], debug=True) となります。app.yamlでhelloworld.applicationと指定したせいで、helloworld.py内のapplicationというオブジェクトが呼び出されることになります。そのオブジェクトの中で"/"にはHelloWorldクラスを対応させているので、ルートへのアクセスに対して、HelloWorldクラスの処理が呼び出されます。 HelloWorldクラスにはgetメソッドが定義してあり、GETリクエストに対してはこれが呼び出されることになります。もちろんpostメソッドを定義することも可能です。 getメソッドの中は単にヘッダと本文をクライアント向けに書き出しているだけです。 元のHello Worldのサンプルに比べて複雑になったように見えますが、GETやPOST、ヘッダーの指定などをフレームワークでやってくれる上に、最後のapplicationの定義を変えていけばapp.yamlを変更せずにURLと処理の対応を変更していけるので、ある程度規模が大きくなるとこちらのやり方の方がずっと楽になります。
編集の要約:
Q & A 認証:
ページ更新時は次の質問にお答えください。(プレビュー時は必要ありません)
Q:
日本の首都は?(漢字で)
A:
お名前:
タイムスタンプを変更しない
テキスト整形のルールを表示する
[1]
Links list
(This host) = https://njf.jp
(This host)
/cms/modules/xpwiki/?cmd=edit&help=true&page=Google%20App%20Engine%20for%20Python%E3%80%80%E3%81%9D%E3%81%AE%EF%BC%92