Google App Engine上でDjangoを動かす

そろそろなんらかの動きのあるアプリケーションを作りだそうと思ったのですが、このままgoogle.appengine.ext.webappパッケージを使ってゴリゴリと書いていっていいのかとちょっと悩みました。躊躇した点は、以下。

  1. webappパッケージを使い続けると、Google App Engine専用のアプリケーションになってしまうのでは?
  2. ちゃんとしたWebアプリケーションを(最終的に)作るつもりであれば、Webアプリフレームワークを入れた方がいいのでは?


といっても、一つ目は、今のところ他の環境で動かすことは念頭にないですし、そもそもGoogle App Engineで動くアプリケーションを作ろうと始めたのに、それに依存した作りになるのを恐れるというのも矛盾している気もします。また、二つ目は、私がwebappパッケージやそれ以外のパッケージの機能をろくに知らないので、単なる印象論です。

まぁでも、Google App EngineとかPythonとかを仕事で使う可能性はほぼ無い状況ゆえ、これは完全に趣味の範囲です。なので、あまりはっきりとしたメリットは見い出せないわけではありますが、なんとなく楽しそうという理由でDjangoを動かすことにしました。

ざっと検索した範囲では、Google App Engine上でDjangoを動かすには、自力でちょっと工夫するか、Google App Engine Helper for Djangoを使うかが主だった方法のようです。ただ、いずれにせよGoogle App EngineでのデータストアがRDBMSではないため、それに依存した部分は動かないとのこと。せっかくのDjangoなのに、Adminが使えないのも悲しいなと思っていたところ、app-engine-patchなるものを知りました。

なんでも、Djangoの主要な機能をほとんどコード修正なくGoogle App Engine上でそのまま動かせることを目指したプロジェクトらしく、主要な機能の中にはAdminも入っています。今年の2/24に1.0がリリースされたということで、これはちょっと試してみたくなりました。

というわけで、次からはapp-engine-patchを調べて、試していこうと思います。なんかでも、なかなかアプリケーションを作りだすところまでいかないなぁ。