しかし、時代は変わった。(遠い目)
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 件のコメント:
コメントを投稿