Остались вопросы?
Мы с удовольствием вам поможем
Спасибо! Ваша заявка принята.
Ваша заявка принята. Наш менеджер скоро с вами свяжется
Заказать звонок
Спасибо! Ваша заявка принята.
Спасибо за обращение.
Мы обязательно свяжемся с вами

Время работы офиса
Пн-Пт: 8:00 — 18:00
Сб: 10:00 — 16:00
Вс: выходной

Установка Django

09.09.2024

Django (Джанго) - это свободный фреймворк для разработки веб-приложений на языке Python.

Базовая поддержка Python стала доступна вместе с Python-селектором на всех тарифных планах на новых серверах (пожалуйста, о наличии python-селектора на вашем сервере уточняйте у специалистов технической поддержки).

Расширенная поддержка доступна на тарифном плане “Профи” (а также архивных тарифах "Типовой+" и "Интернет-проект"). Она позволяет устанавливать Python-модули, которые содержат в себе компоненты, написанные на С/C++ и компилирующиеся в процессе установки.

В данной статье рассмотрим варианты запуска фреймворка Django версии 2.2.5 на тарифах с расширенной и базовой поддержкой Python версии 3.7. Для иных версий действия могут незначительно отличаться.

1. В панели управления хостингом (сPanel) выбираем в разделе "Программное обеспечение" пункт "Настройка Python приложений":

2. На открывшейся странице нажимаем на кнопку “Создать приложение”.

3.Выбираем нужную версию Python, указываем каталог относительно корня аккаунта, в котором будут размещены файлы приложения, а также URL, по которму приложение будет доступно. Оставшиеся поля к заполнению не обязательны. После нажимаем на кнопку “Создать”.

4. В сPanel в пункте "Мастер баз данных MySQL" раздела "Базы данных" создаем новую базу данных, пользователя к ней, выдаём пользователю права:

5. Заходим на сервер по SSH, и после авторизации выполняем команду активации виртуального окружения, которая указана в рамке вверху страницы настройки приложения:

В результате перед строкой приглашения появится название виртуального окружения (myapp:3.7):

При необходимости, выход из виртуального окружения осуществляется командой deactivate

6. Выполняем установку базовых пакетов для работы Django.
Вариант для тарифов с поддержкой компилятора: pip install django mysqlclient
Вариант для остальных тарифов: pip install django pymysql
То есть для работы с базой данных можно использовать разные библиотеки. По умолчанию, работа Django предполагается с компилируемым модулем mysqlclient. Вариант с pymysql не требует наличия компилятора, но нужны будут правки в коде запуска приложения и установленных, которые рассмотрим ниже.

7. Создаем новый Django проект командой django-admin startproject mysite:

8. Модифицируем файл passenger_wsgi.py в директории ~/myapp. Он должен выглядеть следующим образом:

import sys, os 
cwd = os.getcwd()
sys.path.append(cwd)
sys.path.append(cwd + '/mysite')
os.environ['DJANGO_SETTINGS_MODULE'] = "mysite.settings"
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
9. Задаём список разрешённых доменов, по которым сайт будет отвечать. Для этого вносим правки в параметр ALLOWED_HOSTS в файле ~/myapp/mysite/mysite/settings.py:

10. Далее в этом же файле указываем параметры подключения к базе данных, которую создавали в пункте 4:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'sql_mode': 'traditional',
},
'NAME': 'yourdoma_db',
'USER': 'yourdoma_user',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
}
}

11. В конце того же файла ~/myapp/mysite/mysite/settings.py в конце в блоке настроек, касающихся статических файлов, указываем следующее:
STATIC_URL = '/mysite/static/' 
STATIC_ROOT = '/home/yourdoma/public_html/mysite/static/'
MEDIA_URL = '/mysite/media/'
MEDIA_ROOT = '/home/yourdoma/public_html/mysite/media/'

Это позволит nginx получить доступ к вашим статическим файлам.

12. Если при установке был использован модуль mysqlclient, то правки, указанные в этом пункте не требуются, переходите к следующему шагу. Для работы Django с pymysql требуются правки кода модулей и настроек приложения. Сперва отредактируем файл ~/myapp/passenger_wsgi.py и добавим в начало следующие строки:
try: 
import pymysql
pymysql.install_as_MySQLdb()
except ImportError:
pass

Итоговый файл должен выглядеть следующим образом:


Аналогичный блок добавим в файл ~/myapp/mysite/manage.py. Получаем такое содержимое:


Далее, редактируем файл ~/virtualenv/myapp/3.7/lib/python3.7/site-packages/pymysql/__init__.py и заменим в нем version_info = (1, 3, 13, "final", 0) на version_info = (1, 4, 0, "final", 0):



13. Выполняем команду python manage.py collectstatic в директории ~/myapp/mysite:

Эта команда собирает всю статику из каталогов приложений и копирует ее в единый каталог, указанный в settings.py.

14. Для миграции базы данных там же выполняем команду python manage.py migrate

15. В панели управления хостингом делаем рестарт нашего приложения, чтобы изменения вступили в силу:



16. Открываем в браузере адрес нашего приложения. Должна появиться "дефолтная" страница Django:


Также, при правильной настройке по адресуhttp://yourdomain.by/admin/должна открыться следующая страница админки Django:

Получилось найти ответ?
success image
Спасибо за обратную связь!
Задать вопрос
Уточните, пожалуйста, вопрос, ответ на который вы не нашли на этой странице. Мы подготовим ответ и отправим его на вашу электронную почту.
Спасибо! Ваша заявка принята.
Мы скоро свяжемся с вами
Подпишитесь на email-рассылку!

Будьте в курсе новостей. Отправляем полезные письма каждый месяц.

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

Скоро вы получите новое письмо.

article mailing picture