AliBlogger
@AliBlogger
Начинающий питонист

Как развернуть Django с помощью нативной поддержки Python в ISPmanager?

Не так давно в ISPmanager появилась нативная поддержка Python.

Выполнил все пункты инструкции:

https://www.ispmanager.ru/docs/ispmanager/python

Но что нужно сделать дальше, чтобы развернуть Django?
  • Вопрос задан
  • 249 просмотров
Решения вопроса 1
Iron_Butterfly
@Iron_Butterfly
Вы настроили окружение Python для сайта по документации ispmanager. После этого, в док директории сайта в файл requirements.txt прописываете строчку django и через меню сайта по трем точкам справа делаете Pip install.
Cпойлер: requirements.txt можно редактировать через меню Файлы конфигурации сайта. Называется Конфигурационный файл Python.
Затем идете в shell в док директорию сайта и запускаете команды

source .venv/bin/activate
django-admin startproject django_project .


Сразу же можно найти файл settings.py и в ALLOWED_HOST прописать домен и ip по типу:

ALLOWED_HOST = ['hostname', 'xxx.xxx.xxx.xxx']

Изменяем настройки обработчика как на скрине

6499066c692cc851263060.png

Нужно поставить в режим Порт и рядом с runserver написать порт, который выпал ниже.

Перезапускаем Python по трехточечному меню сайта справа. Убеждаемся что перезапуск прошел успешно и идем по адресу сайта. Видим джанговский экран "Hello World!" по типу:

649906f8c13e5521666116.png

Дальше развлекаемся с django как хотим.

Для дебага: в каталоге пользователя (например /var/www/www-root/data/.pm2/logs/) хранятся логи сайтов на Python и Node.js. Там есть error и просто out логи, которые из панели посмотреть можно через файловый менеджер.

Проблема может возникнуть на CentOS7 из-за версии sqlite3. Ошибка будет вида
django.db.utils.NotSupportedError: deterministic=True requires SQLite 3.8.3 or higher

Для временного обхода проблемы есть несколько вариантов:

1. Понизить версию django
pip install Django==2.1.*

2. Использовать в проекте pysqlite3-wheels (работает 3.8, 3.9, 3.10, 3.11)
pip install pysqlite3-wheels django
vim ./.venv/lib64/python3.8/site-packages/django/db/backends/sqlite3/base.py
# from sqlite3 import dbapi2 as Database
from pysqlite3 import dbapi2 as Database
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы