2008/04/30

Google App Engine

Google App Engine
http://code.google.com/appengine/



 なんじゃこりゃ?と思って調べてみたら、このGoogle App Engine(以下GAE)どうやらGoogle様が下々のモノにWebアプリを構築できる場所を提供してくれるサービスらしいです!!まだベータ公開なんで先着1万名様だけでテストやってるんだとかなんとか。なので、出遅れた者はもうちょっと待てってことみたいです。でもSDKをダウンロードすればローカル環境で簡易的なAppサーバを立ち上げられるんで、やってみたら、これおもしろすぎ。(w



 言語はあまりなじみのない(なんていうと使い手さんたちに失礼か…)Pythonなんで、一瞬ためらったんですが、ゴールデンウィークに励まされてダイブ。いやー、この言語なれると使いやすいかもね。普段、perl5をOO的に使ってるので、ほとんど違和感なく使えるようになりましたです。



・Windows環境へのインストール
 ・Python2.5をダウンロードしてインストール(環境変数でPATHを通しておく)
 ・GoogleAppEngineのSDKをダウンロードしてインストール
 ・お好みでテキストエディタなりIDEなりをインストールしてPythonを使えるようにする
  (どらはEclipse3.3とPyDevを使ってみました。(・∀・)イイ!!) 
・使い方
 とりあえず、ここ嫁。(英語)
 http://code.google.com/appengine/docs/gettingstarted/
 ほとんどコピペでHelloWorldの表示ぐらいはできるようになります。



どらが遊んでてちょっと苦労したのがPOSTされたデータをDataStoreに入れておき、それを
取り出して表示するプログラム。すっごくあたりまえな動きなんだけど、なぜか
 UnicodeDecodeError: 'ascii' codec can't decode byte 0x~~~
とか出てしまって、とりあえず文字コードの問題らしいので unicode(str,'Shift-JIS')とかやってみたら今度は
 TypeError: decoding Unicode is not supported
と…泣けた[E:weep]。
スクリプト(.py)ファイル自体はutf-8で書いてるし、HTML出力のcharsetもUTF-8にしてるのに不思議だぁと思って検索してみたら、けっこう皆さん苦労してらっしゃる。GAEだけじゃなく、いろんなところでお目見え。で、表示直前にencodeしてみたらサックリうまくいきました。

      #とりあえず新しい順に10件とってこーい

      test_db = db.GqlQuery("SELECT * FROM TestDB ORDER BY date DESC LIMIT 10")
      #perl や VB でいうところの foreach だな
      for rec in test_db:
          #抽出されたレコードのposted_stringカラム(?)にある文字列を表示
          str = rec.posted_string
          str = str.encode("utf-8")  #この行を追加してみた
          self.response.out.write( str )



うーん…、なんでうまくいったんだろ。
やっぱ付け焼き刃じゃだめか。ちゃんとPython勉強しよう[E:cat]。

早く本稼働してくれないかな。お金かからない範囲でいろいろ作ってみたい。
(…かかるのかもしれないけど…結局、料金体系みたいなのは見つけられなかったのです)



0 件のコメント:

コメントを投稿