База знаний

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

Приложения

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==2.1

Версию Django нужно указать явно. Если этого не сделать, pip попытается установить самую новую версию, которой требуется иная версия SQLite, недоступная на виртуальном хостинге.

Теперь создайте проект на 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 — на доменное имя вашего сайта.

Содержимое файла для Django 2

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.

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

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