記事
· 2022年10月5日 4m read

Djangoへようこそ

IRIS における Python サポートの最近の改善と、InterSystems による Python DB-API サポートへの継続的な作業により、 Django プロジェクトに IRIS サポートを実装しました。Python DB-API の使用により、他のデータベースと連携することが可能です。

Django で、IRIS にデータを保存する単純なアプリケーションを試してみましょう。

ToDo アプリ

このアプリケーションは

GitHub にあります。それをクローンしましょう。

git clone https://github.com/caretdev/django-iris-todo
cd django-iris-todo

次に、Docker-compose でビルドして起動します。

docker-compose up -d --build

IRIS の起動にはしばらくかかりますが、Django アプリケーションは起動をキャッチしてそこにモデルを移行し、アプリケーションも起動します。起動が完了すると、http://localhost:8000/ で利用できるようになり、上記の図のようになります。

仕組み

動作させるには、InterSystems Python DB-API がインストールされている必要があります。最新のプレビューバージョンが含まれているため、2022.1.0.114.0 以上のバージョンが必要です。これは、インスタンスの <INSTALL_DIR>/dev/python/ フォルダにあります。 このファイルは、こちらの GitHub リポジトリからダウンロードすることもできます。 

pip3 install intersystems_irispython-3.2.0-py3-none-any.whl

Django の IRIS バックエンドは別のプロジェクトで実装されており、pip を使ってインストール可能です。当然 django そのものも必要なので、それらをインストールしましょう。

pip3 install django django-iris

別の方法として、requirements.txt ファイルを使用して必要なパッケージを Python にインストールすることができます。

pip3 install -r requirements.txt

ただし、このファイルには以下の行が含まれます。

https://raw.githubusercontent.com/intersystems-community/iris-driver-distribution/main/intersystems_irispython-3.2.0-py3-none-any.whl
Django~=4.0.2
django-iris~=0.1.5

Django アプリケーションを IRIS に接続して、todoApp/settings.py ファイルを開きましょう。

DATABASES は、データベースへの接続設定を定義します。

ENGINE は django_IRIS である必要があります。

NAME は IRIS のネームスペースにポイントする必要があります。

接続できるものに変更しましょう。 たとえば、以下のようにします。

DATABASES = {
    'default': {
        'ENGINE': 'django_iris',
        'NAME': 'DJANGOTODO',
        'HOST': 'localhost',
        'PORT': 1972,
        'USER': '_SYSTEM',
        'PASSWORD': 'SYS',
    }
}

そして移行を開始します。

python3 manage.py migrate

エラーもなく、IRIS 側のすべてのテーブルが作成されました。

これで、アプリケーションを起動することができます。

python3 manage.py runserver

Django には管理者パネルがあります。

python3 manage.py createsuperuser

管理者パネルは、http://localhost:8000/admin/ で利用できます。 

IRIS にはこのように格納されています。

 

完全にサポートするには、ほかにもいくつかの作業が残っています。 InterSystems からの Python DB-API ドライバーはまだ開発中であり、この django-iris プロジェクトも進行中です。

Community Edition ではあまりうまく動作しない可能性があるので注意してください。これは Django がデータベースに接続する方法に起因しており、すべてのライセンスをかなり素早く消費してしまう可能性があるためです。

プロジェクトと、IRIS を使った今後のインパクトを気に入っていただけたら、OpenExchange コンテストでぜひ投票してください。

ディスカッション (0)2
続けるにはログインするか新規登録を行ってください