
Initial Release
![]()
Application tools for use Django AdminLte.
Implemented support for connecting to IRIS via the JDBC library.
![]()
👉 Step 1 - Download the code from the GH repository (using
GIT)
$ git clone https://github.com/SergeyMi37/appmsw-django-adminlte.git
$ cd appmsw-django-adminlte
👉 Step 2 - Start the APP in
Docker
Копировать файл в .env из env.sample и изменить переменные при необходимости
Пропишите ваш реальный IP адрес в переменную CSRF_TRUSTED_ORIGINS
$ docker-compose up -d
В докере создадутся супер-пользователи adm и developer с паролем demo
Visit http://localhost:5085 in your browser. The app should be up & running.
После этого пароль нужно сменить
👉 Download the code
$ git clone https://github.com/SergeyMi37/appmsw-django-adminlte.git
$ cd appmsw-django-adminlte
👉 Install modules via
VENV
Create .env file in root directory and copy-paste this or just run cp env_sample .env, :
DEBUG=True
SECRET_KEY=gix%#3&%giwv8f0+%r946en7z&d@9*rc$sl0qoq7z&d@9*rc$sl0qoql56xr%bh^w2mj
CSRF_TRUSTED_ORIGINS=http://real-you-IP:5085
DJANGO_SUPERUSER_PASSWORD=demo
APPMSW_PARAM_NANE=Basic
APPMSW_LOGO_TITLE=MsW-Title
APPMSW_LOGO_FOOTER=MsW-Footer
Connection string for iris via Nativ Python libs
#APPMSW_IRIS_URL=iris://superuser:SYS@iris:1972/USER
Connection string for iris via JDBC libs
APPMSW_IRIS_URL=jdbc://superuser:SYS@iris:1972/USER
# virtualenv env
# Linux/Mac
python3 -m venv env-lin
source env-lin/bin/activate
# Windows
python -m venv env-win
source env-win/Scripts/activate
pip install -r requirements-win.txt
pip install appmsw/api/intersystems_irispython-3.2.0-py3-none-any.whl
python -m pip install --upgrade pip
python manage.py makemigrations # если появилась новая модель
python manage.py migrate # если есть изменения в моделях
python manage.py createsuperuser # adm, developer # если новая установка
python manage.py loaddata db-init-param.json # если новая установка
cd spa && npm install && cd .. # если новая установка
python manage.py rebuild_spa # если изменился код Vue компонент пересобрать SPA
python manage.py collectstatic --noinput # для запуска статики через ngingx
cp -r static/spa staticfiles/ # для запуска через ngingx
python manage.py runserver # запустить сервер для разработки на порту 8000
python manage.py runserver 0.0.0.0:8080 # если запустить для всех и на порту не 8000
</code></pre>
<p>At this point, the app runs at<br />
<code>http://127.0.0.1:8000/</code> - Интерфейс Django с кампонентами AdminLte<br />
<code>http://127.0.0.1:8000/api/docs/</code> - Swagger v.3 к моделям Django<br />
<code>http://127.0.0.1:8000/my-spa-page/</code> - Vue.js SPA с AdminLTE темой</p>
<h2>Vue.js SPA (Single Page Application)</h2>
<p>Проект включает Vue.js SPA, интегрированную в Django приложение с использованием AdminLTE темы.</p>
<h3>Доступные страницы SPA:</h3>
<ul>
<li><code>http://127.0.0.1:8000/my-spa-page/</code> - Главная страница</li>
<li><code>http://127.0.0.1:8000/my-spa-page/params</code> - Список параметров</li>
<li><code>http://127.0.0.1:8000/my-spa-page/sysoptions</code> - Системные опции</li>
<li><code>http://127.0.0.1:8000/my-spa-page/comments</code> - Комментарии</li>
<li><code>http://127.0.0.1:8000/my-spa-page/about</code> - О программе</li>
</ul>
<h3>Установка и обновление SPA</h3>
<blockquote>
<p>👉 <strong>Установка Node.js и npm</strong></p>
</blockquote>
<p>Перед работой с SPA необходимо установить Node.js и npm:</p>
<p><strong>Для Windows:</strong></p>
<ol>
<li>Скачайте Node.js с официального сайта: <a href="https://nodejs.org/">https://nodejs.org/</a></li>
<li>Запустите установщик и следуйте инструкциям</li>
<li>Перезапустите командную строку</li>
<li>Проверьте установку:</li>
</ol>
<pre><code class="language-cmd">node --version
npm --version
</code></pre>
<p><strong>Для Linux (Ubuntu/Debian):</strong></p>
<pre><code class="language-bash"># Обновите пакетный индекс
sudo apt update
# Установите Node.js и npm
sudo apt install nodejs npm
# Или установите последнюю версию через NodeSource
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
# Проверьте установку
node --version
npm --version
</code></pre>
<p><strong>Для Linux (CentOS/RHEL):</strong></p>
<pre><code class="language-bash"># Установите Node.js и npm
sudo yum install nodejs npm
# Или через NodeSource для более новых версий
curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
sudo yum install nodejs npm
# Проверьте установку
node --version
npm --version
</code></pre>
<blockquote>
<p>👉 <strong>Установка зависимостей SPA</strong></p>
</blockquote>
<pre><code class="language-bash">$ cd spa && npm install && cd ..
</code></pre>
<p><strong>Важно</strong>: Если возникает ошибка “vite не является внутренней или внешней командой”, убедитесь, что зависимости установлены локально в папке <code>spa</code>. При необходимости выполните принудительную установку:</p>
<pre><code class="language-bash">$ cd spa && npm install --force && cd ..
</code></pre>
<blockquote>
<p>👉 <strong>Сборка SPA для продакшена</strong></p>
</blockquote>
<pre><code class="language-bash">$ cd spa && npm run build && cd ..
</code></pre>
<blockquote>
<p>👉 <strong>Сборка SPA для разработки</strong></p>
</blockquote>
<pre><code class="language-bash">$ cd spa && npm run build -- --mode development && cd ..
</code></pre>
<blockquote>
<p>👉 <strong>Запуск сервера разработки SPA</strong></p>
</blockquote>
<pre><code class="language-bash">$ cd spa && npm run dev && cd ..
</code></pre>
<blockquote>
<p>👉 <strong>Обновление статических файлов Django</strong></p>
</blockquote>
<p>После сборки SPA необходимо обновить статические файлы Django:</p>
<pre><code class="language-bash">$ python manage.py collectstatic --noinput
$ cp -r static/spa staticfiles/
</code></pre>
<h3>Структура SPA</h3>
<pre><code>spa/
├── src/
│ ├── views/ # Компоненты страниц
│ │ ├── Home.vue # Главная страница
│ │ ├── Params.vue # Параметры
│ │ ├── SysOptions.vue # Системные опции
│ │ ├── Comments.vue # Комментарии
│ │ └── About.vue # О программе
│ ├── router/
│ │ └── index.js # Настройка маршрутизации
│ ├── App.vue # Основной компонент
│ └── main.js # Точка входа
├── vite.config.js # Конфигурация Vite
└── package.json # Зависимости
</code></pre>
<h3>Особенности интеграции</h3>
<ul>
<li><strong>CSRF защита</strong>: Все API запросы защищены CSRF токенами</li>
<li><strong>Совместное использование шаблонизаторов</strong>: Django и Vue работают вместе</li>
<li><strong>Автоматическая загрузка</strong>: Данные загружаются при открытии страниц</li>
<li><strong>Обработка ошибок</strong>: Показываются сообщения об ошибках загрузки</li>
</ul>
<h2>Утилиты командной строки</h2>
<pre><code># Пересборка SPA:
python manage.py rebuild_spa
# Статистика всех моделей Django:
python manage.py model_stats
# Детальная информация о конкретной модели:
python manage.py check_model appmsw.param
# Экспорт модели в файл json:
python manage.py model_import --model Param --file test.json --format json --import 0
# или
python manage.py model_import --model Param --file test.json --format json
# Экспорт модели в файл csv (по умолчанию):
python manage.py model_import --model sysoption --file sysotiom.csv --format csv
# Импорт модели из файла json в режиме --dry-run - сухой запуск, без реального импорта:
python manage.py model_import --model SysOption --file sysotion.json --format json --import 1 --dry-run
# Импорт модели из файла json:
python manage.py model_import --model SysOption --file sysotion.json --format json --import 1
</code></pre>