Установка Django

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

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

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

В данной статье будет описываться один из способов запуска фреймворка Django на сервере с базовой поддержкой python версии 2.7

1) В панели управления хостингом(Cpanel) выбираем Setup Python App:


2) В появившемся окне выбираем версию интерпретатора python, указываем директорию, где будет размещаться наше приложение и относительный URL, по которому оно будет открываться. После чего нажимаем Setup.


3) Открываем адрес нашего приложения в браузере, чтобы убедиться, что приложение установилось.


4) После создания приложения добавляем Django в появившемся разделе "Модули" и запускаем процесс установки, нажимая кнопку Update.


5) Переходим в консоль и активируем виртуальное окружение командой source ~/virtualenv/myapp/2.7/bin/activate:


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


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

6) Переходим в каталог нашего приложения cd ~/myapp и создаем новый Django проект командой  django-admin.py startproject mysite::


7) Модифицируем файл 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()

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


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


10) Модифицируем файл  ~/myapp/mysite/mysite/settings.py и вносим в него следующие строки:

STATIC_ROOT = '/home/yourdoma/public_html/mysite/static/'
STATIC_URL = '/mysite/static/'
MEDIA_ROOT = '/home/yourdoma/public_html/mysite/media/'
MEDIA_URL = '/mysite/media/'

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

После этого выполняем команду python manage.py collectstatic в директории mysite:


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

Теперь  в панели управления хостингом сделаем рестарт нашего приложения и перейдем в админку Django (/admin), чтобы проверить, правильно ли мы все настроили.

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


11) Для работы с базой данных MySQL устанавливаем модуль PyMySQL :

12) В разделе "Базы данных MySQL" создаем новую базу данных :


13) Добавляем нового пользователя

14) Закрепляем пользователя за базой данных 

15) В файле ~/myapp/mysite/mysite/settings.py редактируем переменную DATABASES и вносим в неё следующую информацию:

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

16) Отредактируем файл ~/myapp/mysite/manage.py и добавим в него строчки:

 try:
      import pymysql
      pymysql.install_as_MySQLdb()
  except ImportError:
      pass

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

17) Отредактируем файл ~/virtualenv/myapp/2.7/lib/python2.7/site-packages/django/db/backends/mysql/base.py  и заменим в нем MySQLdb на pymysql:


18) Проверим соединение с базой данных, выполнив команду ./manage.py migrate: