Реклама ООО Таймвэб
Реклама ООО Таймвэб
Реклама ООО Таймвэб

Как установить Django на хостинг

2 комментария
Как установить Django на хостинг

Инструменты разработки сайтов постоянно совершенствуются. Расширения функционала ресурсов обычно добиваются за счет применения различных языков программирования, например того же Python. Однако он требует довольно много времени, чтобы создавать интерактивные модули с нуля, потому и становятся популярными фреймворки, содержащие массу шаблонных решений.

Что такое Django и зачем он нужен

Один из популярных фреймворков – Django. Это свободный проект, позволяющий разрабатывать ПО с возможностью полной изоляции отдельных модулей. Фактически веб-ресурсы собираются из двух и более блоков, которые редактируются независимо друг от друга. В этом фреймворке используется принцип разработки, нацеленный на уменьшение дублирования данных (DRY).

Django

Платформа Django подходит в следующих случаях:

  1. Планируется пользоваться только свободным ПО.
  2. Требуется быстро разработать сайт, внести изменения в готовый проект.
  3. Хочется сохранить совместимость с другими разработками.

Применение популярного фреймворка позволяет свободно менять исполнителя. У Django есть весьма развитое сообщество разработчиков – в нем легко найти нужную документацию или помощника в доработке готовых модулей или создании новых. Единственное ограничение платформы заключается в необходимости уместить все обрабатываемые данные в единой базе.

Если приложение становится «массивным», то приходится разбивать его на микросервисы, которые обрабатываются отдельно. Такой подход позволяет применять различные сценарии для каждого из независимых модулей. Но рассчитывать только Django не стоит, его возможностей хватит только на реализацию некоторых функций.

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться

Как установить Django на сервер

Сайт, разработанный с включением модулей фреймворка Django, будет работать только при наличии установленной платформы (на хостинге). Есть несколько вариантов ее инсталляции – автоматически (у хостинг-провайдера Timeweb фреймворк можно найти в разделе «Каталог CMS», вкладка «Прочее») или вручную. Второй способ предполагает предварительную установку виртуального окружения virtualenv.

Это инструмент для создания изолированных сред, где запускаются обособленные проекты Python. Такое решение избавляет от проблемы зависимостей и совместимости разных версий приложения между собой. Подробнее о функционале virtualenv лучше почитать в официальных документах, а сейчас речь идет лишь об инсталляции программного обеспечения.

Последовательность действий:

Скачать актуальный релиз и распаковать его в корневой каталог:

wget https://files.pythonhosted.org/packages/53/c0/c7819f0bb2cf83e1b4b0d96c901b85191f598a7b534d297c2ef6dc80e2d3/virtualenv-16.6.0.tar.gz

tar xvfz virtualenv-16.6.0.tar.gz

Создать виртуальное окружение с использованием нужной версии Python:

# Если требуется Python3:

python3 virtualenv-16.6.0/virtualenv.py ~/myenv

или

# Если требуется Python2:

python virtualenv-16.6.0/virtualenv.py ~/myenv

Активировать виртуальное окружение:

source ~/myenv/bin/activate

Инсталлировать Django при помощи команды pip:

pip install django

Если проект еще не создавался, сделать это командой:

django-admin.py startproject имя_проекта

Создать файл .htaccess, который следует расположить «по умолчанию» в каталоге public_html сайта. Внести в него содержимое:

Options +ExecCGI

AddHandler wsgi-script .wsgi

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ /index.wsgi/$1 [QSA,PT,L]

По тому же пути разместить файл index.wsgi (он также создается с нуля). Его содержимое для версии Django выше 1.7:

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, «путь до пакетов Python» – путь до каталога, куда было установлено виртуальное окружение virtualenv. «Имя проекта» – свободное название по решению администратора. Теперь на очереди создание файла settings.py. Он располагается по пути:

~/имя_сайта/public_html/имя_проекта/имя_проекта/settings.py

В нем нужно найти строку:

ALLOWED_HOSTS = []

И указать в ней название сайта:

ALLOWED_HOSTS = ['ДОМЕН']

Или сразу нескольких сайтов:

ALLOWED_HOSTS = ['ДОМЕН1','ДОМЕН2','ДОМЕН3']

Отладка этого файла поможет убедиться в отсутствии ошибок. Она инициируется внесением в него строки DEBUG = True. Проверить подключение проще всего вводом в адресную строку браузера названия сайта (домена). Если все установилось корректно, пользователь увидит приветственную страницу Django.

Django на хостинге

Система готова к эксплуатации (развертыванию сайтов). Перед началом программирования стоит уточнить версию Python, которая используется на хостинге, командой python3 – version. Это снизит риски сбоев из-за несовместимости приложения с интерпретатором.

В остальном вопросов обычно не возникает или они решаются путем обращения в техническую поддержку провайдера.

echo -e "Все про серверы, сети, хостинг и еще раз серверы" >/dev/pts/0

Комментарии

Никита Логинов 0
21 дек в 2021
здравствуйте! действую ровно по инструкции, но у меня проблема: после всех действий в инструкции, когда захожу на сайт выдается ошибка 500, а в логах ошибка файла index.wsgi ModuleNotFoundError: No module named 'django', подскажите пожалуйста, что тут можно сделать
Свернуть ответы
Марсель +1
25 ноя в 2022
Скорее всего проблема в неверно заданных путях к папкам. В консоли перейдите в нужную папку и выполните команду pwd. Консоль покажет правильный путь. Например, в моём случае пути выглядели так:
/home/l/{ваш_логин_timeweb}/{корневая_папка_с_файлами_сайта}/public_html/{название_проекта}
/home/l/{ваш_логин_timeweb}/{корневая_папка_с_файлами_сайта}/venv/lib/python3.4/site-packages
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
С помощью соцсетей
У меня уже есть аккаунт Войти
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте