Django-nonrel 事始め

Django-nonrel というプロジェクトがあるらしい

Django-nonrel は「Django を NoSQL/NoRDB に対応させよう」というプロジェクト。Google App Engine のデータストアをはじめ、SmipleDB・MongoDB・CouchDB といった有名どころをサポートする予定みたい。Django-nonrel は google-appengine-patch の後継プロジェクトなので、現時点で GAE のデータストアには対応済。

非常に興味深いプロジェクトなので、試してみることにした。環境は Windows7 で、Python 2.5 はインストール済み。

Django-nonrel 一式をインストールしてみる

上記ページから、GAE で Django-nonrel を動かすために必要なファイルがダウンロードできる。

  • django-nonrel
    • Django で NoSQL/NoRDB をサポートしたもの。今回の主役。
  • djangoappengine
    • Django-nonrel を GAE で動かすために必要なバックエンドを提供。
  • djangotoolbox
  • django-testapp
    • GAE で Django-nonrel を使ってアプリケーションを作成するためのテンプレート。

これらをダウンロードしたら、解凍して適当な場所に配置する。参考までに、私の場合、GAE 用のライブラリはいつも C:\google_appengine\lib 内に置いている。

Django-nonrelを動かしてみる

まず、適当な場所に django-testapp を解凍する。私の場合、GAE アプリは C:\google_appengine\apps 内に置いているので、今回もそこに配置。

そして、django-testapp フォルダ内に django-nonrel と djangoappengine と djangotoolbox のシンボリックリンクを作成する。

mklink /D django C:\google_appengine\lib\django-nonrel\django
mklink /D djangoappengine C:\google_appengine\lib\djangoappengine
mklink /D djangotoolbox C:\google_appengine\lib\djangotoolbox\djangotoolbox

これで準備は完了。さっそく、django-testapp フォルダ内の manage.py を使って、サーバーを起動してみる。

python manage.py runserver

ブラウザで http://localhost:8000/ にアクセスして、下図のページが表示されたら成功。
f:id:griefworker:20100715191403j:image

あとは、Django オンラインドキュメントのチュートリアルを試してみるといい。ひとまず、今回はここまで。

Django の夜明けは近いぜよ

GAE/Pythonフレームワークでは Kay Framework が機能面でリードしていると思う。でも、Django-nonrel ならバックエンドを変更すれば、GAE 以外の環境でもアプリを動かせるかもしれない。

GAE のデータストアを使ったアプリを、GAE 外で NoSQL/NonRel なデータベースを使って動かすのは、RDBMS より比較的簡単そうに思える。移植を試してないから、推測にすぎないけどね。