Раздел помощи SpaceWeb

Установка Django

14 мар, 2024

Для установки и создания проекта на фреймворке Django потребуется выполнить действия, описанные ниже. Установка Django осуществляется посредством протокола SSH:

Перед установкой необходимо выполнить несколько подготовительных шагов:

  1. Создаем файл профиля и прописываем туда путь до локальной директории каталога, в которой будут находится файлы ".virtualenv" и необходимые библиотеки "django:"
username@vh200 ~ $ nano ~/.profile
  1. Добавляем в созданный файл строку:
export PATH=$HOME/.local/bin:$PATH
  1. После этого нужно разлогиниться и снова подключиться к серверу.
  2. Теперь скачиваем утилиту get-pip:
username@vh200 ~ $ wget https://bootstrap.pypa.io/get-pip.py
  1. Устанавливаем утилиту get-pip:
username@vh200 ~ $ python3.8 get-pip.py
  1. Устанавливаем virtualenv:
username@vh200 ~ $ pip3.8 install virtualenv

Переходим к этапу установки фреймворка

  1. Для установки необходимо воспользоваться утилитой virtualenv. Создать и активировать виртуальное окружение для Вашей версии фреймворка Django можно в каталоге ".djangovenv":
username@vh200 ~ $ virtualenv .djangovenv
username@vh200 ~ $ source .djangovenv/bin/activate
  1. Далее необходимо установить требуемую версию фреймворка в виртуальном окружении (в данном случае выбрана версия Django 3.2.6):
username@vh200 ~ $ pip install django==3.2.6
  1. В следующем шаге необходимо перейти в каталог сайта, где будет расположен сам проект. В качестве примера выбран каталог "~/site1" на который направлен домен:
username@vh200 ~ $ cd ~/site1
  1. После этого требуется создать проект Django и деактивировать виртуальное окружение:
username@vh200 ~ $ django-admin startproject 'SWeb_DjangoSite' && deactivate

При создании возможно заменить имя проекта "SWeb_DjangoSite" на нужное.

  1. Необходимо убедиться, что каталог с проектом был создан и переместить его содержимое в каталог "public_html".

Проще всего это сделать удалив существующий каталог "public_html" и переименовав каталог с самим проектом:

username@vh200 ~/site1 $ rm -rf public_html/
username@vh200 ~/site1 $ mv SWeb_DjangoSite/ public_html

Далее необходимо перейти в каталог:

username@vh200 ~/site1 $ cd public_html/
  1. Далее требуется открыть файл "wsgi.py" в подкаталоге с именем проекта с помощью текстового редактора и указать полные пути к установленному фреймворку, проекту и виртуальному окружению.

Полный путь к текущему каталогу можно узнать, выполнив команду "pwd":

username@vh200 ~/site1/public_html $ pwd
/home/u/username/site1/public_html

В данном случае содержимое файла привести к  следующему содержимому (текущее его содержимое можно удалить):

# -*- coding: utf-8 -*-

import os,sys

#путь к проекту
sys.path.append('/home/u/username/site1/public_html')
#путь к фреймворку
sys.path.append('/home/u/username/site1')
#путь к виртуальному окружению
sys.path.append('/home/u/username/.djangovenv/lib/python3.8/site-packages/')
#исключить системную директорию
sys.path.remove('/usr/lib/python3.8/site-packages')
os.environ["DJANGO_SETTINGS_MODULE"] = "ИМЯ_ПРОЕКТА.settings"

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Текст "ИМЯ_ПРОЕКТА" необходимо изменить на имя созданного проекта, в нашем случае это SWeb_DjangoSite.

  1. В файле settings.py заменить строку:
ALLOWED_HOSTS = []

На следующую:

ALLOWED_HOSTS = ['*']
  1. В каталоге сайта создать файл .htaccess с указанием полного пути к файлу "wsgi.py".

В данном случае содержимое файла "~/site1/public_html/.htaccess" следующее:

AddDefaultCharset utf-8
AddHandler wsgi-script .py
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /ИМЯ_ПРОЕКТА/wsgi.py/$1 [QSA,L]

Текст "ИМЯ_ПРОЕКТА" также необходимо изменить на имя созданного проекта.

  1. В панели управления хостинга в разделе «Сайты» необходимо убедиться, что для сайта выбрана версия Apache 2.4 + PHP 8 opcache + mod_wsgi python3.8

    Для того чтобы изменения вступили в силу, необходимо выполнять перезапуск сервиса django. Для этого нужно перейти в Панель управления аккаунта, в раздел Хостинг->Сайты нажать на нужный сайт, в колонке Конфигурация нажать на ссылку Настройки и далее выбрать текущую версию бэкэнда "Apache 2.4 + PHP 8 opcache + mod_wsgi python3.8 (Актуальная версия)" и нажать на кнопку сохранить. В этом случае сервис django будет перезапущен и изменения будут приняты системой.

   При использования бэкэнда Apache 2.2 + mod_passenger + mod_wsgi, стоить обратить внимание, что в этом случае Модуль mod_wsgi использует по умолчанию python 2.7 и новые версии django будут работать с ошибками.