Django on Jython

JythonDjangoが動くとか書いてあったので、試してみました。
環境

Java、Antなどのインストール手順は省略します。
基本的にここ(http://wiki.python.org/jython/DjangoOnJython)に書いてありますけど。

尚、不具合っぽいんですが、Javaのインストール先(JAVA_HOME)に半角スペースが含まれているとJythonが起動しません・・・。Windowsのデフォルトのインストール先はC:\Program Files\Java\jdkxxx なので注意してください。

Jythonのインストール

今リリースされている、2.5aだと動作しないので、SVNからtrunkをチェックアウトして、antでbuildします。

svn co https://jython.svn.sourceforge.net/svnroot/jython/trunk/jython/ jython-dev
cd jython-dev
ant

続いて(設定していなければ)JAVA_HOMEと、JYTHON_HOMEを環境変数に設定。

Jythonの起動は、次のコマンドで行う。

%JYTHON_HOME%\bin\jython

必要に応じてPATHに追加してください。

Djangoのインストール

Jythonを使って、Django1.0をインストールする方法は、普通にDjangoをインストールするのと変わりません。

%JYTHON_HOME%\bin\jython setup.py install

プロジェクトの作成

%JYTHON_HOME%\binにdjango-admin.pyが作成されているので、これを使ってプロジェクトを作成します。

jython %JYTHON_HOME%\bin\django-admin.py startproject j_site

__init__.pyとかにあわせて、__init__$py.classとかクラスファイルが作成されています。

続いてサーバを起動してみましょう。

cd j_site
jython manage.py

Validating models...
0 errors found

Django version 1.0-final-SVN-unknown, using settings 'j_site.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

JVMが起動するまで少し時間がかかりますが、起動したようです。早速ブラウザでhttp://127.0.0.1:8000/j_siteにアクセスしてみましょう。


お、しっかりと認識しているようです。
簡単なレスポンスも定義してみましょう。urls.pyを編集してこんな感じに。

from django.conf.urls.defaults import *

from django.http import HttpResponse
def index(request):
    return HttpResponse('<html><body>Hello Django on Jython</body></html>')

urlpatterns = patterns('',
     (r'^j_site/', index),
)

OK、ちゃんと表示されています。

まあ、細かいところを動かしていれば不具合はいっぱいあるでしょうが、DjangoJythonで動かせる日も近いってことで。