目的
とりあえず、最近、GoogleAppEngine + Django + FacebookAPIという、 わりとマニアックな環境で作業してて、情報の古さや、Google App Engine Helper for Djangoの中途半端な互換性に 苦しめられることが多いので、備忘録的な感じで気づいたことでも書いていこうと思う。そして、どさくさに紛れて、自作アプリやらソフトやらの宣伝をしてやろうという魂胆
知っておくべきこと
導入したあとで、がっかりしないように知っておくべきこと、- ビューとURLの制御に関しては問題なし
- データモデル(データベース操作)に関してはDjangoと互換性がない。
- よって、Djangoのデータモデルを使用する機構も使用不可(authなども多分無理かな)
- ただし、formに関しては互換性のあるモジュールが存在する。
導入編
Google App Engine SDK for Python
ひとまず、本家のスタートアップサイトに従って、 こちらからGoogleAppEngineSDKを落として解凍します。 Django使うなら当然Pythonの方です。Google App Engine Helper for Django
次に、ここ から、Google App Engine Helper for Djangoを落として解凍。実は、解凍したファイルそのものがGAE上で動くようにカスタマイズされたDjangoプロジェクトなので、cp -r なり何なりでディレクトリごとコピーして、適当に名前をつけます。ここではチュートリアルに従ってmysiteとでもしておく。.google_appengineの設定
すでにDjangoに触った人なら、このまま、manage.py runserverで起動だ!と言いたいところですが、まだいくつかやることがあります。 まず、DjangoをGAE環境で実行するために、mysite下に.(どっと)google_appengineを自分で作ってやる必要があります。 .google_appengineディレクトリの先にGoogleAppEngineSDKが置いてあるものとして、そこからGAEのテストサーバーとか必要なファイルをとってきて、 実行してくれるわけです。じゃあ、解凍したGoogleAppEngineのディレクトリをまるごとコピーすればいいんだな、ってなるかもしれませんが、(別にそれでも問題ないはずですが)実際には、シンボリックリンクでオッケーみたいです。ln -s コマンドでもつかって、作っちゃいましょう。ファイルの修正
2011年12月の段階では、地味にバグがあって、このままじゃ起動できません。appengine_djangoの__init__.pyの210行目あたりの、appconfig, unused_matcher = dev_appserver.LoadAppConfig(PARENT_DIR, {})を
appconfig, unused_matcher, from_cache = dev_appserver.LoadAppConfig(PARENT_DIR, {})に変更します。 どうやら、GAEの仕様が変わったのか戻り値の個数が変化して、バグっていたようです。
0 件のコメント:
コメントを投稿