Как установить Django на хостинг: пошаговая инструкция
Если вы задумываетесь о разработке нового сайта с широким функционалом, будет полезно знать, как установить Django на хостинг. Это один из самых популярных фреймворков, который существенно упрощает создание различных функциональных элементов, внедрение панели управления или использование инструментов загрузки файлов.
Что такое Django и зачем он нужен
Чтобы упростить и ускорить процесс создания сайта, разработчики используют фреймворки, которые выполняют функцию каркаса, которые задают структуру. В них уже предусмотрен набор правил и стандартных инструментов, за счёт чего удаётся объединить разные компоненты большого программного проекта, применяя готовые решения.
Django — это бесплатный инструмент, предназначенный специально для разработки веб- приложений на Python . Работает он на серверной стороне, а пользоваться им удобно опытным специалистам и новичкам, так как залить Django сайт на хостинг может быть актуально для разного масштаба.
С помощью Django можно разрабатывать программное обеспечение, обеспечив абсолютную изоляцию отдельных модулей. То есть удаётся их редактировать обособленно друг от друга, не нарушая их функции в случае применения изменений. Такой подход предполагает уменьшение дублирования данных (DRY). Это делает код более простым, ускоряет процесс создания сайта и окупается в долгосрочной перспективе.
(2).png)
Платформа Django актуальная в трёх случаях.
- Вы будете использовать исключительно свободное программное обеспечение.
- Вам нужно быстро развернуть сайт или только внести изменения.
- Вам важно обеспечить совместимость сайта с другими своими проектами.
Нужно учитывать, что развернуть проект Django на хостинге можно только при использовании основного домена. Этот фреймворк не подходит для автоподдоменов, но можно использовать поддомен как самостоятельный сайт. Кроме того, управлять им можно только с помощью CMS ISPmanager.
Как поставить Django на хостинг
Сначала надо зайти в панель управления хостингом в личном кабинете. Найдите раздел «Сайты». Выберете нужный домен и нажмите «Изменить».
Теперь откройте вкладку «Дополнительные возможности». Поставьте галки напротив пунктов CGI-скрипты и Python. Также нужно выбрать версию Python. В нашем примере это 3.7.0.
(2).png)
Следующий шаг – подключение к хостингу по безопасному соединению SSH . Далее управление выполняется с помощью команд.
cd ~ — переход в каталог пользователя.
pwd – проверка каталога.
(1).png)
В данном случае u0000006 – это логин услуги, у вас он может быть другим.
Когда выполняется установка Django на сервер, нужно создать виртуальное окружение и задать ему имя. Так называется предоставленная сервером среда, где будет размещён сайт с возможностью публичного запуска и доступа. Сюда входит 6 компонентов.
- Аппаратное обеспечение.
- Операционная система.
- Языки программирования и библиотеки.
- Веб-сервер.
- Сервер приложений для передачи запросов.
- База данных, которая содержит необходимую информацию для работы веб-ресурса.
Поскольку виртуальное окружение создаётся для Python, нужно убедиться, что версия совпадает с той, что вы указывали ранее в настройках. Для этого введите команду
ls -la /opt/python/*/bin/python
В ответ система представит все доступные версии.
Теперь можно создавать виртуальное окружение. Введите команду.
/opt/python/python-3.7.6/bin/python -m venv djangoenv
В примере python-3.7.6 — это выбранная версия Python, а «djangoenv» — заданное название виртуального окружения.
Виртуальное окружение нужно активировать.
если слева от команды появилось название, всё сделано правильно.
Дальнейшая установка Django на хостинг требует обновить pip, а также поставить пакеты Django и mysqlclient. Команда выглядит довольно массивно.
pip install —upgrade pip && pip install django && CFLAGS=»-std=c99″ pip install mysqlclient
Теперь можно зайти в корневой каталог.
cd www/ [название каталога]/
Перед тем как загрузить Django проект на хостинг, удалите из каталога веб-ресурса существующие файлы и папки. После этого создайте новый проект.
django-admin startproject [название проекта]
Открываем его настройки.
vim [название проекта]/ [название проекта]/settings.py
Вы увидите параметр ALLOWED_HOSTS = []. В скобках нужно указать домен и его псевдонимы, заключив их в одинарные кавычки.
(1).png)
Теперь смотрим следующий блок DATABASES. Здесь нужно прописать данные для подключения к БД.
(1).png)
Обратите внимание на несколько значений в данном примере.
u1234567_database — название базы данных,
u1234567_username — имя пользователя БД,
Переходим к блоку STATIC_URL. Под ним нужно добавить ещё один.
Нажмите клавишу Esc. Так вы вернётесь в командный режим и сможете продолжить управление. Введите следующую команду.
Теперь создаём каталог со статическими файлами.
python [название_проекта]/manage.py collectstatic
В ответ система выдаст сообщение с указанием числа файлов.
Далее нужно выполнить миграцию в MySQL .
python [название_проекта]/manage.py migrate
В корневой папке создаём конфигурационный файл.
vim /var/www/[логин услуги хостинга]/data/www/[корневая папка сайта]/passenger_wsgi.py
В конфигурационный файл нужно внести изменения. Впишите следующий текст с корректным указанием папок, проектов, путей к ним и других параметров.
sys.path.insert(0, ‘/var/www/[логин услуги хостинга]/data/www/[корневая папка сайта]/ название проекта)
sys.path.insert(1, ‘/var/www/[логин услуги хостинга]/djangoenv/lib/[версия Python]/site-packages’)
os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘название проекта’
from django.core.wsgi import get_wsgi_application
Нажмите Esc для возвращения в командный режим. Сохраните изменения с помощью команды «:wq». Нажмите Enter.
Как перезапустить проект на Django
После того как сайт на Django выложить на хостинг удалось, можно посмотреть изменения в файлах проекта. Для этого в его корневой директории создайте файл .restart-app: через менеджер файлов в панели управления.
(1).png)
Откроется форма, где нужно задать имя и тип (выбирайте «файл» их выпадающего списка). Нажмите кнопку «ОК».
В результате проект будет перезапущен, а сам файл удалится из системы.
Как запустить сайт на Django без ошибок: с какими трудностями сталкиваются пользователи
Иногда ошибки возникают при создании каталога со статическими файлами. В этом случае нужно проверить файл settings.py. Возможно, некорректно указано название домена, нет одинарных кавычек.
Проблема может быть связана с разными окружениями, так как перенос Django проекта на хостинг затрагивает несколько сред: локальную, dev, ci, qa и другие. Каждая из них имеет свои настройки. Например, значение DEBUG = True. В них придётся внимательно разобраться.
Некоторые пользователи сталкиваются с ошибкой 500. Чаще всего она возникает, если неправильно указан путь к папкам. Корректный путь можно узнать с помощью команды pwd.
Заключение
В этой статье мы подробно рассмотрели, как запустить Django на хостинге и исправить ошибки в случае необходимости. Этот высокоуровневый веб-фреймворк характеризуется внушительным комплектом компонентов, помогающих ускорить разработку сайта. Однако для работы с ним пользователю требуются профильные знания в сфере информационных технологий. При возникновении трудностей целесообразно обращаться в техподдержку или найти нужную документацию в крупном сообществе разработчиков, так как Django пользуется популярностью в IT-среде.
# Запуск Django-проекта на Джино.Хостинге
# Подготовка хостинга к запуску Django-проекта
Создайте новый хостинг-контейнер и подключите услуги Поддержка веб-приложений и Поддержка SSH. По умолчанию для работы с базами данных Django использует SQLite, но если её возможностей будет недостаточно, в разделе Услуги подключите MYSQL или PostgreSQL.
Для запуска Django-проекта на хостинге нужно создать виртуальное окружение для той же версии Python, на которой создан проект. Создайте виртуальное окружение командой:
/opt/alt/python37/bin/virtualenv --python /opt/alt/python310/bin/python3 venv310
Здесь /opt/alt/python37/bin/virtualenv — путь к утилите virtualenv, отвечающей за создание виртуального окружения на хостинге; /opt/alt/python310/bin/python3 — путь к интерпретатору Python 3.10. Все доступные версии Python и пути к их интерпретаторам представлены в разделе Управление
На Джино.Хостинге утилита для создания виртуального окружения vitualenv расположена по адресу /opt/alt/python37/bin/virtualenv и с помощью неё создаётся виртуальное окружение для любой версии Python.
# Загрузка Django-проекта
Способы загрузки Django-проекта на сервер:
- загрузка через протоколы передачи файлов (FTP, FTPS, SFTP);
- использование git-репозитория;
- загрузка проекта с помощью инструментов, встроенных в IDE.
# Запуск Django-проекта
Для запуска Django-проекта нужно:
- указать URL-адрес, на котором будет работать приложение;
- установить зависимости проекта;
- создать файл passenger_wsgi.py, который будет отвечать за обработку веб-сервером запросов к Django;
- выбрать интерпретатор для домена.
# Указание URL
В папке проекта в файле settings.py найдите строку ALLOWED_HOSTS = [] и укажите в ней адрес своего сервера. Например: ALLOWED_HOSTS = [‘example.com’] .
# Установка зависимостей проекта
Для некоторых проектов может понадобиться установка дополнительных зависимостей, установленных в локальном окружении. Чтобы установить зависимости в виртуальное окружение на сервере, создайте файл requirements.txt на локальной машине. Для этого выполните команду:
pip freeze > requirements.txt
При загрузке проекта на сервер проследите, чтобы файл requirements.txt был загружен вместе с другими файлами проекта.
После этого активируйте созданное на хостинге виртуальное окружение:
source ./venv310/bin/activate
Далее в папке приложения выполните команду:
pip install -r requirements.txt
# passenger_wsgi.py
Файл passenger_wsgi.py обеспечивает взаимодействие Django-проекта с веб-сервером. Он должен находиться в папке с доменным именем рядом с главным файлом проекта manage.py. Содержимое файла passenger_wsgi.py должно быть следующим:
import sys, os INTERP = os.path.expanduser("~/venv310/bin/python3") if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv) from project.wsgi import application
Здесь в строке INTERP= указан путь к исполняемому файлу виртуального окружения, созданного на этапе подготовки хостинг-контейнера; в строке from project.wsgi. — wsgi-файл, отвечающий за запуск приложения на веб-сервере.
# Выбор интерпретатора
В разделе Управление
Настройки веб-сервера выберите версию интерпретатора Python, на которой работает ваше приложение.
После этого в адресной строке браузера введите адрес вашего сервера.
Вы должны увидеть стартовую страницу вашего сайта.
Запуск Django-приложения на Хостинге, созданном до 28.04.2022
Для запуска Django-проекта на Хостинг-аккаунте, созданном до 28.04.2022, понадобится виртуальное окружение, созданное командой:
virtualenv-3.9 venv39
После создания виртуального окружения активируйте его:
source ./venv39/bin/activate
Далее установите Django с помощью стандартного менеджера пакетов pip:
pip install django
После этого создайте новый проект прямо на сервере или загрузите уже имеющийся.
Папка, содержащая проект, должна находиться вне папки ~/domains .
Для запуска Django-проекта создайте файл .htaccess в папке ~/domains/your_domain . Здесь your_domain — доменное имя, на котором будет работать сайт. Если у вас ещё нет домена или он не привязан к Хостингу, воспользуйтесь техническим адресом сервера. Технический адрес сервера представлен в разделе Управление
Настройки SSH в строке Имя сервера и имеет общий вид 123xyz.hosting.myjino.ru или j12345678.myjino.ru.
В файл .htaccess поместите следующие директивы:
AddHandler wsgi-script .wsgi RewriteEngine on RewriteCond %REQUEST_FILENAME> !-f RewriteRule ^(.*)$ /django.wsgi/$1 [QSA,PT,L]
Этот файл определяет, что в качестве рабочего файла для mod_passenger будет использоваться файл с расширением .wsgi, и далее напрямую указывает имя этого файла django.wsgi.
Теперь создайте файл django.wsgi в папке ~/domains/your_domain .
Содержимое django.wsgi должно быть следующим:
import os, sys virtual_env = os.path.expanduser('~/venv39') activate_this = os.path.join(virtual_env, 'bin/activate_this.py') exec(open(activate_this).read(), dict(__file__=activate_this)) sys.path.insert(0, os.path.expanduser('~/path/to/your/project')) from project.wsgi import application
В этом файле указан путь к папке с виртуальным окружением, путь к файлу, активирующему виртуальное окружение, и путь к wsgi-файлу проекта.
Далее в разделе Управление
Настройки веб-сервера проверьте версию Python, которая используется на домене. Она должна совпадать с версией, для которой создано виртуальное окружение.
После этого в адресной строке браузера укажите выбранное доменное имя и проверьте работу проекта.
# Подключение баз данных
По умолчанию в качестве СУБД Django использует SQLite, но к проекту можно подключить MySQL или PostgreSQL в разделе Услуги .
После этого в разделе Управление
Управление MySQL(PostgreSQL) создайте новую базу данных и нового пользователя для неё:

Для подключения базы данных к Django-проекту понадобится клиент, работающий с выбранным типом баз данных.
В случае с MySQL — это mysqlclient, для PostgreSQL — psycopg2.
В связи с особенностями функционирования программной платформы, mysqlclient и psycopg2 временно не могут быть установлены в виртуальное окружение, созданное для Python 3.10. Для версий Python 3.9 и старше всё работает.
Установите клиент в активированном виртуальном окружении:
(venv39)user@hosting: pip install mysqlclient
После того как клиент успешно установится, настройте подключение приложения к базе.
В файле settings.py приведите раздел DATABASES к следующем виду:
... DATABASES = 'default': 'ENGINE': 'django.db.backends.mysql', 'NAME': 'j12345678_django-app', 'USER': 'j12345678', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT':'3306', > > ...
- в строке ENGINE укажите, какой движок используется для работы с базами данных (mysql или postgresql);
- в строках NAME , USER и PASSWORD укажите данные только что созданной базы данных и пользователя;
- в строках HOST и PORT опишите сетевые параметры для подключения к базе данных. В данном случае база данных и Django-проект расположены в одном хостинг-контейнере, поэтому подключаться к базе можно с параметром localhost . Для подключения Django-проекта к базе данных, расположенной на другом хостинг-контейнере, воспользуйтесь данными, представленными в разделе Управление
В консоли SSH-подключения перейдите в папку с приложением и запустите миграцию зависимостей:
python manage.py makemigrations python manage.py migrate
При возникновении ошибок в работе базы данных миграция зависимостей не будет произведена, и дальнейшая работа приложения будет невозможна.
После успешной миграции зависимостей перезагрузите веб-сервер ( Управление
Перезагрузить ) и проверьте работу проекта. Откройте в браузере адрес, на котором расположен проект, и проверьте наличие стартовой страницы.
© Джино, 2003–2022. «Джино» является зарегистрированным товарным знаком.
Лицензия на телематические услуги связи №150549 от 09.03.2017.
Запуск сервера для разработки
Джанго поставляется с облегченным веб-сервером для быстрого запуска сайта без необходимости тратить время на настройку сервера. При запуске сервера разработки Джанго он в режиме реального времени следит за изменениями в коде. Он автоматически перезагружается, после изменения кода. Однако это может не сработать для некоторых действий, таких как добавление новых файлов в проект, в этих случаях потребуется перезапустить сервер вручную.
Запустите сервер с помощью команды:
python manage.py runserver
Тереминал отобразит что-то подобное:
Performing system checks. System check identified no issues (0 silenced). November 5, 2015 - 19:10:54 Django version 1.8.6, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
Теперь откройте URL-адрес http://127.0.0.1:8000/в браузере. Вы увидите страницу, в которой рассказывается, что проект успешно запущен, как показано на следующем снимке экрана:

Вы можете указать Django на каком хосту и порту нужно запускаться, или сообщить, что необходимо запустить проект, загрузив другой файл параметров. Например, можно запустить команду manage.py следующим образом:
python manage.py runserver 127.0.0.1:8001 \ --settings=mysite.settings
Это удобно для использования нескольких сред, для которых требуются различные параметры. Помните, что этот сервер предназначен только для разработки и не подходит для производственного использования. Чтобы развернуть Джанго в производственной среде, следует запустить его в качестве Web Server Gateway Interface (WSGI) с помощью реального веб-сервера, например Apache, Gunicorn или WSGI. Дополнительные сведения о развертывании Джанго с различными веб-серверами можно найти в https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/ .
results matching » «
No results matching » «
Как установить Django на хостинг

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

Платформа Django подходит в следующих случаях:
- Планируется пользоваться только свободным ПО.
- Требуется быстро разработать сайт, внести изменения в готовый проект.
- Хочется сохранить совместимость с другими разработками.
Применение популярного фреймворка позволяет свободно менять исполнителя. У 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 % !-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.

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