Как работает Django

Хостинг - как работает Django

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

1. Запуск Django
2. Перезапуск сервиса после изменения кода сайта
3. Обновление статических файлов
4. Работа с ошибками приложения

Django (Джанго) это свободный фреймворк, позволяющий быстро и качественно разрабатывать динамические веб-приложения на языке Python. Django используется для сайтов Bitbucket, Instagram, The Washington Times и других.

1. Запуск Django

Выберите один из вариантов:

Показать как создать новый сайт на Django

В панели управления при создании сайта выберите вкладку “Установить CMS/Framework”.

Далее выберите базу данных, которую будет использовать проект.

Выберите Django с MySQL, либо Django с Postgres.

Настройки

Установка Django прошла успешно, если при открытии сайта вы видите такую страницу:

Готово!

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


Показать как загрузить готовый сайт при помощи FileZilla

Создайте новый сайт в панели управления. При создании сайта выберите, что сайт работает на 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.

Готово!

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


Показать как загрузить готовый сайт через git

Создайте новый сайт в панели управления. При создании сайта выберите, что сайт работает на Python:

Настройки

После создания перйдите на вкладку “Python” на странице сайта и убедитесь, что используется подходящая версия языка. При необходимости смените её и дождитесь применения настроек.

Подключитесь по SSH

Перейдите в каталог с сайтом:

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.

Готово!

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


2. Перезапуск сервиса после изменения кода сайта

После изменения кода сайта потребуется перезапуск сервиса.

Для перезапуска:

Показать как перезапустить приложение через консоль

Перейдите в каталог с сайтом:

cd имя_сайта

и выполните команду

touch reload

Например

c3087@h2:~/mydomain.ru$ touch reload


3. Обновление статических файлов

На хостинге вебсервер nginx ищет статические файлы в каталоге имя_сайта/www.

При открытии в браузере ссылки http://имя_сайта/image.png вебсервер попытается найти файл image.png в имя_сайта/www.

Если image.png не найден в имя_сайта/www, то запрос перенаправляется в uwsgi.


Когда вы добавляете на сайт статические файлы (.css, .jpg, .png и другие) необходимо запустить collectstatic в manage.py.

Показать как запустить collectstatic

В вашем проекте есть каталог для статических файлов, обычно он называется 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


4. Работа с ошибками приложения

Если вместо статических файлов (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. Последние ошибки будут в конце файла.

Хостинг
Хостинг
Хостинг
Создавайте неограниченное количество сайтов в изолированных контейнерах
С 2003 года
Надежность.
Нам доверяют десятки тысяч компаний и разработчиков
20 лет
Предоставляем услуги профессионального хостинга
35 000
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime
наших серверов хостинга
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
ВК49865