Для запуска сайта на Django необходимо, чтобы данный фреймворк был у вас установлен. Сделать это вы можете автоматически через панель управления в разделе "Каталог CMS", вкладка "Прочее" или вручную.
При ручной установке вы можете провести инсталляцию виртуального окружения virtualenv, после чего можно использовать pip для установки библиотек Python.
Виртуальное окружение virtualenv - это инструмент, позволяющий создавать изолированные среды для отдельных проектов Python, решая тем самым проблему зависимостей и совместимости приложений разных версий. Подробнее о виртуальном окружении Python можно прочитать в официальной документации
Версии Django и Python
На наших серверах доступны две версии интерпретатора: Python 2 и Python 3 (версии 3.4, 3.5, 3.6).
Для работы Python3 используйте для сайта версию PHP 7.x. При выборе более старых версий PHP будет использоваться Python 2.7
Совместимость версий Django и Python:
Версия Django | Версии Python |
---|---|
1.11 | 2.7, 3.4, 3.5, 3.6, 3.7 (в версии 1.11.17) |
2.0 | 3.4, 3.5, 3.6, 3.7 |
2.1 | 3.5, 3.6, 3.7 |
2.2 | 3.5, 3.6, 3.7, 3.8 (в версии 2.2.8) |
3.0 | 3.6, 3.7, 3.8 |
Установка Django
Шаг 1: установка virtualenv
Установите и активируйте virtualenv по нашей инструкции.
Шаг 2: установка Django
2.1. После можно приступить к установке django с помощью pip:
pip install django
2.2. Если проект еще не создан, вы можете создать его командой:
django-admin.py startproject имя_проекта
Если при выполнении этой команды возникает ошибка:
-su: /home/u/user/env/bin/django-admin.py: Permission denied
То для создания проекта используйте команду:
django-admin startproject имя_проекта
2.3. Далее, чтобы развернуть проект, необходимо создать файл .htaccess в папке public_html сайта со следующим содержанием:
Options +ExecCGI AddHandler wsgi-script .wsgi RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.wsgi/$1 [QSA,PT,L]
2.4. Там же нужно создать файл index.wsgi.
Для версии django меньше 1.7 cо следующим содержанием:
import os import sys sys.path.append('ПУТЬ_ДО_ПРОЕКТА') sys.path.append('ПУТЬ_ДО_ПАКЕТОВ_PYTHON') os.environ['DJANGO_SETTINGS_MODULE'] = 'имя_проекта.settings' from django.core.handlers import wsgi application = wsgi.WSGIHandler()
Для версии django 1.7 и выше cо следующим содержанием:
import os import sys sys.path.append('ПУТЬ_ДО_ПРОЕКТА') sys.path.append('ПУТЬ_ДО_ПАКЕТОВ_PYTHON') os.environ['DJANGO_SETTINGS_MODULE'] = 'имя_проекта.settings' import django django.setup() from django.core.handlers import wsgi application = wsgi.WSGIHandler()
ПУТЬ_ДО_ПРОЕКТА – это полный путь до папки с проектом Django. Обычно создается в той папке, в которой была введена команда:
django-admin.py startproject имя_проекта
Пример полного пути:
/home/c/cs99441/public_html/timewebtest
Полный путь до вашего проекта можно узнать, введя в консоли:
cd ~/имя_сайта/public_html/имя_проекта pwd
Если Django устанавливается на основной сайт, то команда будет:
cd ~/public_html/имя_проекта pwd
ПУТЬ_ДО_ПАКЕТОВ_PYTHON – это полный путь до папки, которая содержит пакеты Python для виртуального окружения (virtualenv).
Если виртуальное окружение было создано по инструкции на шаге 1, то полный путь можно узнать, введя команду:
cd ~/myenv/lib/python3.6/site-packages/ pwd
Где python3.6 – это версия python, выбранная при установке виртуального окружения.
2.5. Далее необходимо добавить список разрешенных хостов (доменов) для проекта Django в файле settings.py, который находится по пути:
~/имя_сайта/public_html/имя_проекта/имя_проекта/settings.py
Если Django установлен на основной сайт, то команда будет:
~/public_html/имя_проекта/имя_проекта/settings.py
В этом файле необходимо найти строку:
ALLOWED_HOSTS = []
И указать в ней используемый домен:
ALLOWED_HOSTS = ['ДОМЕН']
Если сайт будет использоваться на нескольких доменах, их тоже необходимо прописать:
ALLOWED_HOSTS = ['ДОМЕН1','ДОМЕН2','ДОМЕН3']
2.6. Также рекомендуется включить отладку проекта в том же файле settings.py (обычно включена по умолчанию), отредактировав строку с параметром DEBUG:
DEBUG = True
В результате при переходе по домену должна отобразиться приветственная страница:
Дополнительную информацию вы можете найти на официальном сайте проекта.
Отображение статических файлов
По умолчанию пути к статическим файлам в Django начинаются со /static/
. Соответственно, для их корректного отображения необходимо, чтобы директория static находилась в корне сайта — в папке public_html.
Для решения данной задачи установите нужное значение константы STATIC_ROOT в файле settings.py вашего приложения.
Например, если сайт располагается в папке /home/u/user/имя_сайта/public_html/
, то значение STATIC_ROOT должно быть следующим:
STATIC_ROOT = '/home/u/user/имя_сайта/public_html/static/'
Значения u и user необходимо заменить на первую букву вашего логина и сам логин.
После выполните активацию виртуального окружения и запустите команду:
python manage.py collectstatic
Django сгенерирует статические файлы и разместит их в папке, указанной в STATIC_ROOT.
Более подробную информацию можно получить в документации Django.
Также вы можете переместить имеющуюся папку static в директорию public_html. Это тоже позволит отобразить статические файлы.