База знаний

Инструкции и ответы на вопросы о хостинге, работе сайтов и приложений

Приложения

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

По умолчанию сервер обрабатывает PHP-скрипты. Для запуска Python-приложений, выберите uWSGI в качестве веб-сервера для домена в разделе «Сайты и домены» → «Управление сайтами» Панели управления. Чтобы установить и настроить фреймворк, подключитесь к серверу по SSH.

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

Создание и настройка виртуального окружения

Подключитесь по SSH и выполните команду:

[username@server ~]$ pip install virtualenv --user 

Если вы планируете установить Django2, используйте pip3:

[username@server ~]$ pip3 install virtualenv --user 

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

[username@server ~]$ virtualenv --system-site-packages python

Активируйте виртуальное окружение:

[username@server ~]$ source ~/python/bin/activate

Виртуальное окружение настроено.

Установка и настройка Django

Выполните команду pip для установки фреймворка:

(python) [username@server ~]$ pip install Django
Чтобы установить Django 2 используйте pip3: (python) [username@server ~]$ pip3 install Django

Теперь создайте проект на Django. Для этого перейдите в каталог домена (~/domains/domain.ru/), на котором будет использоваться фреймворк: (python) [username@server]$ cd domains/domain.ru/

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

(python) [username@server domain.ru]$ django-admin startproject myproject

В корневом каталоге сайта (python) [username@server domain.ru]$ cd public_html/ создайте файл входа в приложение — site.wsgi. Это можно сделать с помощью файлового менеджера в Панели управления или воспользовавшись текстовым редактором vim:

(python) [username@server public_html]$ vim site.wsgi

 import os, sys
virtual_env = os.path.expanduser('/home/username/python')
activate_this = os.path.join(virtual_env, 'bin/activate_this.py')
execfile(activate_this, dict(__file__=activate_this))
sys.path.insert(0, os.path.join('/home/username/domains/domain.ru/myproject'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
from django.core.wsgi import get_wsgi_application
 application = get_wsgi_application()

Замените username на логин вашего аккаунта, domain.ru — на доменное имя вашего сайта.

 import os, sys
activate_this = '/home/username/python/bin/activate_this.py'
with open(activate_this) as f:
    exec(f.read(), {'__file__': activate_this})
sys.path.insert(0, os.path.join('/home/username/domains/domain.ru/myproject'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
from django.core.wsgi import get_wsgi_application
 application = get_wsgi_application()

Замените username на логин вашего аккаунта, domain.ru — на доменное имя вашего сайта.

Настройте выполнение скриптов на Python, добавив правила в файл .htaccess:

DirectoryIndex site.wsgi index.html
Options +ExecCGI
AddHandler wsgi-script .wsgi
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /site.wsgi/$1 [QSA,PT,L]

Укажите домен, по которому будет открываться сайт, в конфигурационном файле проекта. Для этого откройте файл settings.py, расположенный в каталоге ~/domains/domain.ru/myproject/myproject/: (python) [username@server public_html]$ cd ~/domains/domain.ru/myproject/myproject/ И добавьте доменное имя в строку ALLOWED_HOSTS:

ALLOWED_HOSTS = ['domain.ru']

Приступать к работе с фреймворком можно уже на этом этапе, однако большинству проектов нужна база данных. Настроим Django для работы с MySQL.

Подключение базы данных MySQL

По умолчанию модуль для работы с MySQL отсутствует. Для установки перейдите в домашний каталог аккаунта: (python) [username@server]$ cd

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

(python) [username@server]$ pip install mysqlclient 

Чтобы применить изменения, перейдите в каталог ~/domains/domain.ru/myproject/: (python) [username@server]$ cd domains/domain.ru/myproject/

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

(python) [username@server myproject]$ python manage.py migrate

Укажите данные для подключения к базе данных в конфигурационном файле (settings.py) в поле DATABASES:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'username_db',
'USER': 'username_dbuser',
'PASSWORD': 'password',
'HOST': 'localhost',
}
 }

Здесь username_db — название вашей базы данных, username_dbuser — имя пользователя базы данных, password — пароль.

Готово! Если все настроено верно, при переходе на сайт отобразится страница:

Теперь вы можете приступить к разработке своего сайта на Python с помощью Django.

Если у вас возникли сложности в процессе установки фреймворка, обратитесь в нашу службу поддержки.

Была ли эта инструкция полезной?