今後もしばらくGoogle App Engineで開発を続けて行きますが、Colorを公開するところまでで気づいたところ、はまったところなどをメモ。
はまったところ(はまってるところ)
・タイムゾーンの変換
DBにDatetimeで普通に突っ込むと時間が日本時間じゃなくなっちゃうみたいで。
で、DBに格納されているDatetimeを各国のタイムゾーンに合わせて表示したいんだけど、そこでまだはまっています。
・データの更新
DBから取得したエンティティのプロパティに値をセットしなおして、put()すれば更新できるはずなんですが、なんかデータが追加されてしまいます。ちなみにローカルでは再現せず。バグなのか、コードが悪いのか。
・app.yamlでスタイルシートの指定
本家のチュートリアルには、
- url: /stylesheets
static_dir: stylesheets
という風に例が載っているのですが、これだとローカルで上手く動かず。jsや画像ファイルと共に以下のように設定しました。
- url: /(.*\.(js|css|png))
static_files: \1
upload: (.*\.(js|css|png))
・複数ユーザだけが参照できるページの作成
Google Docsみたいに、あるページを指定したユーザだけで参照/編集可能にしようと思っているのですが、どうやってやろうか検討中。フローとしては、ユーザAがページを作成し、ユーザBをメールで招待して、ユーザBはメールに記載されているURLをクリックする、なんてのを想定しているのですが、ユーザBがこのアプリに対してログインしていないと、ユーザBのユーザオブジェクトは取得できない訳で。ユーザAが送信したメールアドレスを覚えておいて、ログインしてきたユーザのメールアドレスと比較したりすれば良いのかな。ユーザオブジェクトで取得できるメールアドレスは普遍なんだろうか。まあ、これはおいおい試してみます。
公開時にやったこと
・Applications Gallery - Google App Engine - Google Codeに登録(1日に100アクセスくらいありました)(ロゴとかサムネイルとかちゃんと作った方が良いね)
・Show off your App Engine apps - Google Blogoscoped Forumに書き込み(1日に100アクセスくらいありました)
・faviconの作成
アプリをデプロイしたら、管理画面でエラーの項目としてfaviconへのアクセスがエラーになっているとのこと。なんか勝手に取得しにくるみたいなので、さくっと作ってアップしました。
開発中によく参照したページ
- Developer's Guide - Google App Engine - Google Code(本家Document)
- Django | The Django template language: For template authors | Django Documentation(DjangoテンプレートのDocument)
- 5.1.6 tzinfo Objects(Pythonのタイムゾーンについて)
- 3. 正規表現を使う(Pythonの正規表現)
- Google App Engine詳解:さっそくHello Worldから作ってみた - builder by ZDNet Japan
- Google App Engineでもうちょっとがんばってみる:メール送信プログラム - builder by ZDNet Japan
とりあえずこんなところで。