Google App Engine

年・月別アーカイブ

最近のエントリー


先達はあらまほしきものなり

ウェブ検索(Yahoo!API利用)ニュース検索(GoogleニュースのAtom形式出力をパース)を作ってみた。 その過程でいくつかの懸案が解決し(または見切りをつけ)た。

モジュールの配置ってそもそもどうするのが普通なのか

何が正解かはよく分からない。site-packagesにファイルを置くと、とかeasy_installというシロモノに関する情報もあるが……。
sys.pathというリスト(通っているパスがすべて入っている)に適当なディレクトリを突っ込む、という方法が簡単そう&とりあえず動いたのでこれでいく。

PathInfoからの引数取得

os.environというディクショナリにPATH_INFOというそのものずばりの値が。これをスラッシュで区切って使う。PathInfoからの引数取得は今後も多用しそうなので共通の関数を定義しておこう。os.environにはこの他にも標準的な値が一通りそろっている模様。smartyだったら予約変数$smartyの中に全部詰め込んであったのだが、似たようなものはなさそう。

リダイレクト

self.redirectでできる、ということを見つけるのに時間がかかった。

URLエンコード、デコード

urllib.quote_plusがおそらくそのものずばりだが、encode('utf-8')をつけてやらないとエラーが出る。かなりはまった。ウェブリクエスト用にkey=valueの形式にエンコードするならurllib.urlencodeを使うのが便利。

XMLの取得、パース

各種のAPIを使うにせよ、RSSを読み込んで表示するにせよ、XMLをパースする仕組みは必須。標準でもいろいろあるようだが、BeautifulSoupが手軽そう。実際手軽だったが、タグのアトリビュートの扱いがややこしくてちょっと泣いた。ウェブ越しにXMLを取り込むのはGAE名物urlfetchを使うのが礼儀というものだろう。

なんか表示するたびにエラーが出る…

デフォルトエンコーディングを変更してやらないとデフォルトでasciiになっているらしい。グローバルだこと。

正規表現

Googleの返してくるXMLがタグだらけ。正規表現の出番。


すでにくじけそう。

| トラックバック(1)
Google App Engine上でPythonを使っていろいろ作っていこうと思う。ターゲットは、現在PHPで動かしている受賞作ドットジェイピー2軒目は近所のバー7thPocket.comをGAEに移すこと。3サイトとも基本的にはオリジナルのDB少しとたくさんのWebAPIを組み合わせたサイト。課題をリストアップしてみよう。 えーと、無理だなこれは。かれこれ6年くらいかけて書き溜めてきたから仕方ないけど、ゴミも積もればゴミの山、だ。

djangoのバージョンが低い…

これまでPHPで作ってきたいくつかのサイトをGAE上で動かすべくいろいろ試す。
●現在のGAE開発環境に組み込まれているバージョンは0.9x
 よって、このページにある各機能のうち、「Django 1.0 で新たに登場しました.」とある機能は使えない模様。中でも、辞書の各要素をループしてキーと値を取得、というシンプルな機能が使えないのには困った。また、テンプレートからオブジェクトのメソッドを呼び出すときにも引数が1つしか指定できなかったりする。
●オリジナルのクラスを含むモジュールを、メインプログラムとは別のディレクトリで管理したい場合、「import sys」した上で、「sys.path.insert(0, 'hogelib/hogehoge')」などとしてやる必要がある。
●また、そのようにしてインポートしたモジュールに含まれるクラスを継承して別のクラスを作るのであれば、継承元を表すカッコ内にはモジュール名.クラス名という形式で記述する必要がある。たとえば、hogelib/hogehoge/hoge.pyの中のhogeクラスを継承してfugaクラスを作る場合は「class fuga(hoge)」ではなく「class fuga(hoge.hoge)」となる。
●日本語の文字列を使用する場合は文字列リテラルの前に「u」を付けてu'日本語文字列'としてやるが、それだけでは不十分で、ソースの2行目あたりに# -*- coding: utf-8 -*-が必要だそうな。

社内の情報共有用にApp Engineを使えないか、試そう。
社内には立派な情報共有基盤がたんまりあるのだが、管理者権限を渡してもらえないこともあって何かと面倒。
まずはCMS。App Engine Site Creator。そのままでは日本語が使えないのでマルコ式ネット白書の記事を参考に1箇所だけ書き換えて完了。
あ、app.yamlの書き換えはそれとは別に必須。これからも時々やらかしそうですが。


Google App Engineに挑戦してみる

Google App Engineを使っていろいろやってみようと思う。Web上にいろいろ情報は出ているのだが、まずは参考書を購入。

アーカイブ

Books

未来放浪ガルディーン外伝(1) 大出世。 未来放浪ガルディーン外伝(2) 大ハード。 未来放浪ガルディーン(3) 大豪快。 琥珀の夢 上 小説 鳥井信治郎 琥珀の夢 下 小説 鳥井信治郎 ゼンデギ (ハヤカワ文庫SF) 星系出雲の兵站-遠征- 1 星系出雲の兵站-遠征- 2 星系出雲の兵站-遠征- 3 星系出雲の兵站-遠征- 4 アメリカン・ブッダ (ハヤカワ文庫JA) 星系出雲の兵站-遠征- 5 三体Ⅱ 黒暗森林(上) 三体Ⅱ 黒暗森林(下) クロックワーク・ロケット (新☆ハヤカワ・SF・シリーズ) エターナル・フレイム (新☆ハヤカワ・SF・シリーズ) アロウズ・オブ・タイム (新☆ハヤカワ・SF・シリーズ) 烏は主を選ばない 八咫烏シリーズ 2 (文春文庫) 黄金の烏 八咫烏シリーズ 3 (文春文庫) 空棺の烏 八咫烏シリーズ 4 (文春文庫) 宇宙一の無責任男シリーズ 無責任艦長タイラー 宇宙一の無責任男シリーズ 明治一代無責任男 宇宙一の無責任男シリーズ ワングの逆襲 宇宙一の無責任男シリーズ外伝 銀河無責任時代 宇宙一の無責任男シリーズ 無責任元帥タイラー 宇宙一の無責任男シリーズ アザリン16歳 宇宙一の無責任男シリーズ タイラー大逆転 宇宙一の無責任男シリーズ外伝 大宇宙(おおぞら)のサムライ 宇宙一の無責任男シリーズ 無責任大統領タイラー 宇宙一の無責任男シリーズ 風速四十光年 宇宙一の無責任男シリーズ 永遠なれ無責任男 宇宙一の無責任男シリーズ外伝 緋き獅子 宇宙一の無責任男シリーズ外伝 厳冬惑星ホロシリの叛乱 無責任キッズ 暗黒太陽小町 無責任キッズ WHY?の嵐 無責任キッズ 燃えてキサラ 無責任キッズ 時先案内人 無責任キッズ 銀河嫁取物語 宇宙一の無責任男シリーズ外伝 カトリくんタンマ 無責任カルテット 君の名はマチコ 宇宙一の無責任男シリーズ外伝 我が名はヤマモト 無責任カルテット 天使・失格 無責任カルテット 邪教殱滅 無責任カルテット 決戦!薔薇色星雲 無責任カルテット 銀河賛唱 無責任三国志 謀略トライアングル 無責任三国志 冷たい三角関数 無責任三国志 炎のトリコロール 無責任三国志 奇跡のトリニティー 無責任三国志 三匹快進撃 無責任三国志 三羽烏登場! 無責任三国志 三つの王冠(クラウン) 無責任三国志 試練の三番勝負! 無責任三国志 サード・ビッグバン 無責任三国志 輝け!トライスター 雲南省スー族におけるVR技術の使用例

Link