Подключите на своём аккаунте услугу «Поддержка скриптовых языков» *.
Определитесь с доменом, на котором будет располагаться ваше приложение, и добавьте его на аккаунт в разделе «Хостинг / Домены» контрольной панели. Убедитесь, что домен привязан к сервису «Хостинг».
Если вы хотите использовать поддомен, то также добавьте его в общий список доменов в этом разделе.
Перейдите в раздел «Хостинг / Управление / Настройки веб-сервера» и выберите версию Python, которую вы хотите использовать.
В этой инструкции мы будем использовать технический домен username.myjino.ru (подставьте вместо username свой логин на «Джино») и Python 3.6.
В файловом менеджере создайте файл simple.wsgi (имя может быть любым) в папке выбранного домена (в нашем случае это папка domains/username.myjino.ru) и определите в нём функцию application, которая будет формировать ответ сервера согласно спецификации WSGI:
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
Рядом создайте файл .htaccess и добавьте в него строку:
AddHandler wsgi-script .wsgi
Перейдите в браузере по адресу http://username.myjino.ru/simple.wsgi, и если всё сделано правильно, то на экране появится текст «Hello World». Наше простейшее веб-приложение готово.
* Если ваш аккаунт создан до 25.10.2021 г., то вам нужно вместо услуги «Поддержка скриптовых языков» подключить услугу «Поддержка Python + Django».
Прежде всего убедитесь, что у вас подключена услуга «Поддержка скриптовых языков» *. На время разработки вам также часто будет нужен доступ по SSH, поэтому перед созданием нового Django-проекта подключите и услугу «Поддержка SSH». Если в качестве базы данных вы будете использовать MySQL, соответствующая услуга также должна быть подключена.
Определитесь с доменом, на котором будет располагаться ваш сайт, и добавьте его на аккаунт в разделе «Хостинг / Домены» своей контрольной панели. Убедитесь, что домен привязан к сервису «Хостинг».
Если вы хотите использовать поддомен, то также добавьте его в общий список доменов в этом разделе.
Перейдите в раздел «Настройки веб-сервера» и выберите версию Python, которую вы хотите использовать. На данный момент доступны версии 3.9, 3.8, 3.7, 3.6 и 2.7.
В этой инструкции мы будем использовать технический домен username.myjino.ru (подставьте вместо username свой логин на «Джино») и Python 3.8.
Создайте папку, где будут располагаться ваши проекты. Эта папка должна находиться вне DOCUMENT_ROOT, то есть вне папок вида domains/имя_домена. Одним из вариантов будет создать папку projects рядом с директорией domains и в ней — папку для проекта (назовём наш проект demo):
mkdir -p ~/projects/demo
Перейдите в эту папку, затем создайте и активируйте виртуальное окружение Python. Введите команды:
cd ~/projects/demo
virtualenv-3.8 env
. env/bin/activate
После virtualenv- укажите ту версию Python, которая используется в вашем случае. В результате будет создана папка ~/projects/demo/env.
В рамках виртуального окружения установите свежую версию Django:
pip install --upgrade django
Можно установить и любую другую версию. Например, последнюю версию из ветки 2.1.x:
pip install --upgrade 'django<2.2'
Таким же образом можно установить и любые другие модули Python.
Cоздайте новый Django-проект:
django-admin startproject demo
В результате будет создана ещё одна вложенная папка demo со стандартным шаблоном Django-проекта.
Проверим его работоспособность, команда check должна сообщить об отсутствии ошибок:
./demo/manage.py check
Откройте файл ~/projects/demo/demo/demo/settings.py и измените в нем значение переменной ALLOWED_HOSTS: вставьте в список имя того домена, на котором вы хотите разместить свой сайт. Например, для технического домена:
ALLOWED_HOSTS = ['username.myjino.ru']
В директории домена, на котором будет находиться ваш проект (в нашем случае — domains/ваш_логин.myjino.ru) создайте файл django.wsgi и поместите в него такие строки:
import os, sys
virtual_env = os.path.expanduser('~/projects/demo/env')
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('~/projects/demo/demo'))
from demo.wsgi import application
Затем создайте в той же папке еще один файл — .htaccess — и поместите в него следующие директивы:
AddHandler wsgi-script .wsgi
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /django.wsgi/$1 [QSA,PT,L]
Откройте сайт в браузере, и если всё сделано правильно, то вы должны увидеть стандартную страницу-заглушку Django, сообщающую об успешной установке.
Если же в результате выполнения этих действий получаете в браузере ошибку 500, загляните в раздел «Хостинг / Статистика / Лог-файлы».
На этом установка проекта завершена. Теперь вы можете создавать приложения и приступать к разработке.
* Если ваш аккаунт создан до 25.10.2021 г., то вам нужно вместо услуги «Поддержка скриптовых языков» подключить услугу «Поддержка Python + Django».
Доступны версии Python 2.7, 3.6, 3.7, 3.8 и 3.9. Вы можете выбрать разные версии Python для разных доменов в разделе «Хостинг / Управление / Настройки веб-сервера». По умолчанию используется Python 2.7.
Версию Django вы можете установить любую при создании виртуального окружения (см. «Как начать проект на Django?»).
Да, библиотека Python Imaging Library (PIL) установлена.
Да, в рамках виртуального окружения Python (virtualenv) вы можете устанавливать любые необходимые модули. Для этого соединитесь с сервером по SSH и выполните следующие команды:
. virtualenv/MyEnv/bin/activate # переключаемся в виртуальное окружение
pip install имя_модуля # устанавливаем модуль
В данном примере подразумевается, что у вас установлено виртуальное окружение в папке virtualenv/MyEnv. Как создать и использовать виртуальное окружение Python, описано здесь.
Действительно, иногда бывает так, что код кэшируется, и чтобы изменения вступили в силу, необходимо перезагружать веб-сервер. Это можно сделать через контрольную панель в разделе «Хостинг / Управление / Настройки веб сервера», нажав на кнопку «Перезагрузить».
Вы можете использовать базы данных MySQL, PostgreSQL (при подключении соответствующих услуг) и SQLite.
Нет, SSH нужен лишь для работы с утилитами django-admin и manage.py, если вы разрабатываете свой проект прямо на нашем сервере. Однако вы можете вести разработку на своем локальном хосте, и лишь копировать обновленные файлы и содержимое БД на сервер.
Если вы ведете разработку прямо на сервере, используете MySQL в качестве БД и пытаетесь синхронизировать базу данных командой python manage.py syncdb, то в качестве значения поля HOST словаря DATABASES['default'] в файле settings.py обязательно нужно указать IP 127.0.0.1. Однако это несколько снизит скорость соединения с БД, поэтому после окончания работы с утилитой manage.py верните данное значение в исходное положение (пустая строка).