モジュールの配置ってそもそもどうするのが普通なのか
何が正解かはよく分からない。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がタグだらけ。正規表現の出番。
- Google App Engineとpythonの基本
- モジュールの配置ってそもそもどうするのが普通なのか
- ドメインの割り当て
- 携帯電話の識別
- PathInfoからの引数取得
- DataStoreAPI
- 履歴テーブル
- リダイレクト
- URLエンコード、デコード
- なんか表示するたびにエラーが出る…
- 正規表現
- XMLの取得、パース
- WebAPIの利用
- RSS
- 厳密にはWebAPIではないのかもしれないが
- その他サイト間共通のサービス
- RSS配信
- Sitemap
- Adsense
- 特にモバイル用が問題。pythonでモバイルAdSenseを使ってみるを参考に
- アクセスカウンター
- 現在、xreaのサービスを使っているが、まあ自前で用意すべきかと。Google App Engine でカウンターを作ってみたを参考にする。
- PnT(仮称)