Page tree

Для запуска сайта на 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.112.7, 3.4, 3.5, 3.6, 3.7 (в версии 1.11.17)
2.03.4, 3.5, 3.6, 3.7
2.13.5, 3.6, 3.7
2.23.5, 3.6, 3.7, 3.8 (в версии 2.2.8)
3.03.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

В результате при переходе по домену должна отобразиться приветственная страница:

Дополнительную информацию вы можете найти на официальном сайте проекта.

  • No labels