В хостинге некоторые решения могут показаться вам нестандартными.
Поэтому перед началом работы мы бы рекомендовали ознакомиться с вводной статьей.
1. Запуск Django
2. Перезапуск сервиса после изменения кода сайта
3. Обновление статических файлов
4. Работа с ошибками приложения
Django (Джанго) это свободный фреймворк, позволяющий быстро и качественно разрабатывать динамические веб-приложения на языке Python. Django используется для сайтов Bitbucket, Instagram, The Washington Times и других.
Выберите один из вариантов:
В панели управления при создании сайта выберите вкладку “Установить CMS/Framework”.
Далее выберите базу данных, которую будет использовать проект.
Выберите Django с MySQL, либо Django с Postgres.

Установка Django прошла успешно, если при открытии сайта вы видите такую страницу:
Готово!
Если при работе с сайтом возникнут сложности, то вы можете обратиться в техническую поддержку.
Создайте новый сайт в панели управления. При создании сайта выберите, что сайт работает на Python:

После создания перйдите на вкладку “Python” на странице сайта и убедитесь, что используется подходящая версия языка. При необходимости смените её и дождитесь применения настроек.
Далее подключитесь к серверу по SFTP.
Откройте каталог имя_сайта/app.
Удалите файлы-заглушки wsgi.py и index.html.

Загрузите файлы сайта перетащив их мышью из левой части экрана в правую.
После этого нужно установить зависимости проекта. Подключитесь по SSH.
Перейдите в каталог с сайтом:
cd имя_сайта/app
Установите зависимости:
pip install -r requirements.txt
или
python setup.py install
Далее создайте символическую ссылку на файл wsgi.py, который находится в имя_проекта/wsgi.py.
ln -s имя_проекта/wsgi.py wsgi.py
Если вы не знаете, что указать в имя_проекта, то его можно посмотрть в файле app/manage.py. В данном случае это mysite:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings’)
Каталог с недавно установленным проектом будет выглядеть так:
$ ls -la
total 16
drwxr-xr-x 3 c3087 c3087 4096 Jun 18 17:51 .
drwxr-xr-x 4 c3087 c3087 4096 Jun 18 16:54 ..
-rwxr-xr-x 1 c3087 c3087 538 May 30 18:01 manage.py
drwxr-xr-x 3 c3087 c3087 4096 Jun 18 17:20 mysite
lrwxrwxrwx 1 c3087 c3087 14 Jun 18 17:00 wsgi.py -> mysite/wsgi.py
Откройте настройки сайта в личном кабинете.
После этого нажмите кнопку “Перезапустить Python”.
Откройте ваш сайт. Что делать, если вы видите ошибку 502.
Если же появилась такая страница:
То откройте FileZilla, вновь подключитесь к серверу по SFTP и измените параметр ALLOWED_HOSTS в файле имя_сайта/имя_проекта/settings.py.
Не забудьте поменять настройки подключения к базе данных в файле имя_сайта/имя_проекта/settings.py.
Создайте символическую ссылку на каталог со статическими файлами. Если такой каталог в вашем проекте называется static, то подойдет команда:
ln -s ~/имя_сайта/app/static ~/имя_сайта/www
На хостинге статические файлы необходимо располагать в каталоге имя_сайта/www.
Поэтому файлы типа robots.txt, yandex-verification или аналогичные можно переместить в имя_сайта/www.
Готово!
Если при переносе сайта возникнут сложности, то вы можете обратиться в техническую поддержку и мы бесплатно перенесем ваш сайт и поможем советом.
Создайте новый сайт в панели управления. При создании сайта выберите, что сайт работает на Python:

После создания перйдите на вкладку “Python” на странице сайта и убедитесь, что используется подходящая версия языка. При необходимости смените её и дождитесь применения настроек.
Перейдите в каталог с сайтом:
cd имя_сайта
Удалите каталог app
rm -rf app
Клонируйте свой репозиторий в каталог app
git clone <repo> app
Например
git clone https://github.com/python-discord/site.git app
Перейдите в каталог app
cd app
Установите зависимости:
pip install -r requirements.txt
или
python setup.py install
Далее создайте символическую ссылку на файл wsgi.py, который находится в имя_проекта/wsgi.py.
ln -s имя_проекта/wsgi.py wsgi.py
Если вы не знаете, что указать в имя_проекта, то его можно посмотрть в файле app/manage.py. В данном случае это mysite:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings’)
Каталог с недавно установленным проектом будет выглядеть так:
$ ls -la
total 16
drwxr-xr-x 3 c3087 c3087 4096 Jun 18 17:51 .
drwxr-xr-x 4 c3087 c3087 4096 Jun 18 16:54 ..
-rwxr-xr-x 1 c3087 c3087 538 May 30 18:01 manage.py
drwxr-xr-x 3 c3087 c3087 4096 Jun 18 17:20 mysite
lrwxrwxrwx 1 c3087 c3087 14 Jun 18 17:00 wsgi.py -> mysite/wsgi.py
Откройте настройки сайта в панели управления.
Нажмите кнопку “Перезапустить Python”.
Откройте ваш сайт. Что делать, если вы видите ошибку 502.
Если же появилась такая страница:
То откройте FileZilla, вновь подключитесь к серверу по SFTP и измените параметр ALLOWED_HOSTS в файле имя_сайта/имя_проекта/settings.py.
Не забудьте поменять настройки подключения к базе данных в файле имя_сайта/имя_проекта/settings.py.
Потребуется создать символическую ссылку на каталог со статическими файлами. Если такой каталог в
вашем проекте называется static, то подойдет следующая команда:
ln -s ~/имя_сайта/app/static ~/имя_сайта/www
На хостинге статические файлы необходимо располагать в каталоге имя_сайта/www.
Поэтому файлы типа robots.txt, yandex-verification или аналогичные можно переместить в имя_сайта/www.
Готово!
Если при переносе сайта возникнут сложности, то вы можете обратиться в техническую поддержку и мы бесплатно перенесем ваш сайт и поможем советом.
После изменения кода сайта потребуется перезапуск сервиса.
Для перезапуска:
Перейдите в каталог с сайтом:
cd имя_сайта
и выполните команду
touch reload
Например
c3087@h2:~/mydomain.ru$ touch reload
На хостинге вебсервер nginx ищет статические файлы в каталоге имя_сайта/www.
При открытии в браузере ссылки http://имя_сайта/image.png вебсервер попытается найти файл image.png в имя_сайта/www.
Если image.png не найден в имя_сайта/www, то запрос перенаправляется в uwsgi.
Когда вы добавляете на сайт статические файлы (.css, .jpg, .png и другие) необходимо
запустить collectstatic в manage.py.
В вашем проекте есть каталог для статических файлов, обычно он называется static.
Если в ~/имя_сайта/www/static у вас нет символической ссылки на ~/имя_сайта/app/static, то создайте ее:
ln -s ~/имя_сайта/app/static ~/имя_сайта/www
Проверьте что в файле имя_сайта/имя_проекта/settings.py указаны переменные
STATIC_URL = '/static/'
STATIC_ROOT = '/home/имя_контейнера/имя_сайта/www/static'
Далее подключитесь по SSH.
Перейдите в каталог с сайтом:
cd имя_сайта
и выполните команду
./manage.py collectstatic
Если вместо статических файлов (css, json, jpg и тд) отображается ошибка Django с traceback, то проверьте права на файлы. Права должны быть 750.
Если при обращении к сайту вы видите ошибку 502 Bad Gateway, то:
Нас интересуют параметры APP_PATH и APPLICATION.
* Проверьте, что в APP_PATH путь до wsgi.py указан аналогично тому, как на скриншоте ниже:
* Проверьте параметр APPLICATION. В нем нужно указать объект, с которого вебсервер начнет обрабатывать код вашего сайта. В большинстве случаев он называется application и менять ничего не требуется. Но в вашем проекте он может называться по другому. Подробнее о нем в документации Django.
После этого нажмите кнопку “Перезапустить Python” в верхней части страницы. Попробуйте открыть ваш сайт еще раз.
По-прежнему 502 Bad Gateway? Тогда стоит обратиться к логам ошибок.
Подключитесь к серверу по SFTP.
Посмотрите файл имя_сайта/log/wsgi-runlog/current. Последние ошибки будут в конце файла.