Bienvenido, Django
Gracias a las últimas mejoras al soporte de Python en IRIS y al continuo trabajo en el soporte a la DB-API de Python por parte de InterSystems, he implementado el soporte de IRIS en el proyecto Django, en el que la DB-API de Python se usa para trabajar con otras bases de datos.
Vamos a probar una sencilla aplicación en Django, que almacena sus datos en IRIS.
La aplicación está disponible en GitHub, vamos a clonarla
git clone https://github.com/caretdev/django-iris-todo
cd django-iris-todo
Y podemos crearla y empezar con Docker-compose
docker-compose up -d --build
Llevará un tiempo, cuando IRIS se inicie, y la aplicación Django se cargue los modelos y se arranque. Una vez iniciada, estará disponible en http://localhost:8000/ y deberá presentar la pantalla arriba.
Cómo funciona
Para que funcione, necesita la DB-API de Python instalada. Viene en la última versión de prueba, por lo que hace falta la versión 2022.1.0.114.0 o superior y está situada en la carpeta de la instancia <INSTALL_DIR>/dev/python/
. Este fichero también se puede descargar de este repo en GitHub
pip3 install intersystems_irispython-3.2.0-py3-none-any.whl
El backend de IRIS de Django es implementado por otro proyecto, que puede ser instalado con pip, y necesitamos django por sí solo, vamos a instalarlo
pip3 install django django-iris
Otra forma de instalar los paquetes requeridos en Python es usar el archivo requirements.txt
pip3 install -r requirements.txt
El contenido de este fichero son estas 3 lineas
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
Vamos a conectar nuestra aplicación Django a IRIS. Abrimos el fichero todoApp/settings.py
DATABASES define la configuración de las conexiones a la base de datos
ENGINE debería ser django_IRIS
NAME debería apuntar a Namespace en IRIS
Solo cámbialo a algo, donde puede conectar. Por ejemplo
DATABASES = {
'default': {
'ENGINE': 'django_iris',
'NAME': 'DJANGOTODO',
'HOST': 'localhost',
'PORT': 1972,
'USER': '_SYSTEM',
'PASSWORD': 'SYS',
}
}
Y empieza la migración
python3 manage.py migrate
No hay errores, todas las tablas en el lado de IRIS se crearon
Y estamos listos para empezar nuestra aplicación
python3 manage.py runserver
Django viene con un panel de administración
python3 manage.py createsuperuser
Está disponible en http://localhost:8000/admin/,
Cómo se almacenó en IRIS
Todavía hay trabajo por hacer para tener un soporte completo. Hay trabajo en marcha con el driver DB-API de Python desde InterSystems, y también con este proyecto django-iris.
Tened en cuenta que puede que no funcione tan bien en la versión Community Edition, por la forma como Django se conecta a la base de datos, puede que use todas las lincencias muy rápido.