Как установить Django на хостинг
Django — популярный, высокоуровневый web-фреймворк. Предназначен для web-приложений на Python, обладает большим набором готовых компонентов, которые будут полезны не только новичкам, но и профессионалам.
- Django доступен только для панели управления ISPmanager. Ваш домен должен быть привязан к услуге хостинга. Если вы это еще не сделали, воспользуйтесь инструкцией Как привязать домен к хостингу;
- Django не подходит для автоподдоменов. Чтобы использовать Django, используйте основной домен, либо поддомен как отдельный сайт.
Как установить Django
- 1.
-
2.
Перейдите в раздел Сайты, выберите домен, для которого вы хотите установить Django, и нажмите Изменить:
-
3.
В разделе «Дополнительные возможности» включите CGI-скрипты, Python, выберите Версию Python и нажмите Ok:
- 4.
-
5.
Перейдите в каталог вашего пользователя с помощью команды:
cd ~
Убедитесь, что вы в нужном каталоге, выполнив команду:
pwd
-
6.
Создайте виртуальное окружение (Virtualenv) с произвольным именем. Виртуальное окружение необходимо создать для версии Python, которой вы планируете пользоваться для вашего проекта. Она должна совпадать с версией в шаге 3. Чтобы узнать доступные версии Python, выполните команду:
ls -la /opt/python/*/bin/python
Для создания виртуального окружения выполните команду:
/opt/python/python-3.7.6/bin/python -m venv djangoenv
Где:
- python-3.7.6 — ваша версия Python,
- djangoenv — название вашего виртуального окружения.
-
7.
Активируйте ваше виртуальное окружение с помощью команды:
source djangoenv/bin/activate
Где djangoenv — название вашего виртуального окружения.
Если слева от строки ввода команды появилось название вашего виртуального окружения, значит, оно активировалось:
-
8.
Обновите pip, установите пакеты Django и mysqlclient с помощью команды:
- если вы используете Python 3.7.6 и ниже:
pip install --upgrade pip && pip install django && CFLAGS="-std=c99" pip install mysqlclient
- если вы используете версию Python 3.8.6 и выше:
pip install --upgrade pip && pip install django==4.1.10 && CFLAGS="-std=c99" pip install mysqlclient
-
9.
Перейдите в корневой каталог вашего сайта с помощью команды:
cd www/faq-reg.ru/
Где faq-reg.ru — название вашего каталога.
Убедитесь, что вы в нужном каталоге, выполнив команду:
pwd
-
10.
Важно: перед созданием проекта удалите все файлы и папки из каталога вашего сайта.
Создайте новый проект в корневом каталоге:
django-admin startproject project_name
Где project_name — название вашего проекта.
-
11.
Откройте настройки вашего файла командой:
vim project_name/project_name/settings.py
Где project_name — название вашего проекта.
В секции ALLOWED_HOSTS = [] добавьте имя вашего домена и его псевдонимы. Обратите внимание! Домены должны быть в кавычках:
В секции DATABASES укажите данные для подключения к MySQL:
Где:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'имя_базы_данных', 'USER': 'имя_пользователя_базы_данных', 'PASSWORD': 'пароль_базы_данных', 'HOST': 'localhost', } }
Если у вас нет базы данных, вы можете создать её по инструкции Как создать базу данных?
Ниже секции STATIC_URL добавьте новую секцию:
STATIC_ROOT='static/'
После внесения изменений нажмите ESC для выхода в командный режим. Для сохранения изменений и выхода введите
:wq
и нажмите «Enter». -
12.
Создайте каталог со статическими файлами командой:
python project_name/manage.py collectstatic
Где project_name — название вашего проекта.
СоветЕсли во время выполнения команды возникла ошибка, проверьте конфигурационный файл settings.py, который вы настроили ранее. -
13.
Выполните миграцию в MySQL с помощью команды:
python project_name/manage.py migrate
-
14.
Создайте в корневом каталоге вашего сайта конфигурационный файл с именем passenger_wsgi.py и запишите в нем следующее:
# -*- coding: utf-8 -*- import os, sys sys.path.insert(0, '/var/www/u0000006/data/www/faq-reg.ru/project_name') sys.path.insert(1, '/var/www/u0000006/data/djangoenv/lib/python3.7/site-packages') os.environ['DJANGO_SETTINGS_MODULE'] = 'project_name.settings' from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
-
15.
В строке sys.path.insert(0, '/var/www/u0000006/data/www/faq-reg.ru/project_name') измените путь к вашему проекту. Вместо u0000006 используйте логин вашей услуги хостинга: Как узнать логин хостинга. Путь к вашему проекту вы можете увидеть в панели управления:
-
16.
В строке sys.path.insert(1, '/var/www/u0000006/data/djangoenv/lib/python3.7/site-packages') укажите:
- Вместо python3.7, версию python, которую вы выбрали на шаге 3 и 6;
- вместо u0000006, логин вашей услуги хостинга: Как узнать логин хостинга;
- а также путь до каталога вашего виртуального окружения. Его можно увидеть в панели управления:
-
17.
В строке os.environ['DJANGO_SETTINGS_MODULE'] = 'project_name.settings' измените project_name на название вашего проекта.
-
18.
Сохраните файл passenger_wsgi.py.
Готово, по адресу вашего домена должна отобразиться стартовая страница Django.
Как перезапустить проект на Django
Если вы изменили файлы проекта и хотите увидеть изменения, вам необходимо перезапустить проект. Для этого создайте файл .restart-app в корневой директории вашего сайта. После перезапуска проекта файл будет удалён автоматически.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊