2009年11月14日土曜日

Google App Engine

今までWebアプリを作るためには、レンタルサーバを借りるなりして、自分で環境設定やプログラムを配置したりといろいろ手間が掛かった。

しかし、時代は変わった。(遠い目)

Google App Engineを使えば、簡単に自分のサービスを立ち上げることができる。
テストなど小トランザクションなら無料だ。

いい時代になったものだ。

でちょっと立ち上げてみた。

http://bad-workers.appspot.com/

いわゆるHello Worldだが、

Google App Engine詳解:さっそくHello Worldから作ってみた

を見て作った。(というかコピペ)

注意点をいくつか

Mac版SDKで試したが

SDKをダウンロードして中のランチャーアプリを適当なフォルダ(アプリケーションとか)にコピーダブルクリックしてランチャーアプリを起動。

なんかコピーするらしい。(/usr/local/google_appengine/が作られる)
パスを設定。(tcshの場合)

set path = ($path /usr/local/google_appengine/)

とか

アプリケーションの作成(Create)するのに携帯のアカウント(SMSなど)
を入力する必要がある。docomoの場合、i-modeメールアカウントでOK。
あとは、携帯宛にメールが届くので、それを入力して作成完了。

日本語などを使う場合、.pyファイルの先頭に、


# -*- coding: utf-8 -*-

をいれutf8で保存する。

ファイルの先頭のutf-8宣言がないと、テストサーバでは動いても、実環境(appspot.com)で
エラーが発生した。

ってな感じ。1時間くらいでできるので、お手軽だ。

今後、Big Tableなんかを使ってみたい。

追記:

スタートガイドを参考に、ユーザ情報(Googleアカウント)、永続化、テンプレートエンジンを試してみた。

簡単だ。。。

Big Table のキーの管理がちょっと特殊である。
Big TableはKey-Value Storeの一種で、1つしかキーがない。
PythonのO/RマッパーであるModelクラスでは、key_nameという特殊な変数でアクセスする。

たとえば、E-Mailアドレスをキーにしてオブジェクトを取得する場合、

    note = Note.get_by_key_name("key:"+users.get_current_user().email())

というようにした。

Modelオブジェクトを生成するときにキーを指定しないと、キーはユニークな値で自動生成される。
GQLという問い合わせ言語(SQLの親戚)で検索(SELECT)する場合、このキーを含めるない方がよいようだ。(いろいろ制限がある)

あと、Google App Engineでは静的なファイル(.cssや画像など)を置けるので、
次回は、静的なHTMLからAjax的なアクセスをやってみたい。



0 件のコメント:

コメントを投稿