Справочная информация >> Инструкции по аккаунту >> Установка Django
Django - свободный фреймворк для веб-приложений на языке Python, использующий шаблон проектирования
В статье речь идет про установку Django на основной домен hostXXXXXXX.hostland.pro, с корневой директорией /hostXXXXXXX.hostland.pro/htdocs/www. Для каждой установки следует изменять название домена на свой домен. Если установка производится на поддомен, то дополнительно в пути, директория www изменяется на первую часть поддомена, а в файле settings.py достаточно просто указать поддомен. В остальном, отличий в установке на поддомены нет.
У нас на серверах установлен Python 3.6 или 3.9. В зависимости от версии Python имеются ограничения по работе некоторых версий Django: на Python 3.6 нет возможности поставить последнюю версию Django. Если вам нужна именно последняя версия, обратитесь в техническую поддержку
Шаг 1Определяем доступную версию python. Для этого выведем установленную версию:
/opt/python3/bin/python3 -V python3 -V
В зависимости от установленной версии, будут различаться пути и действия по установке, поэтому в зависимости от версии следуйте инструкции под установленную версию.
Python 3.6 поддерживает только более старую версию Django - 3.2.15. Если вам требуется более свежая версия Django, обратитесь в техническую поддержку.
Вначале создаем виртуальное окружение и прописываем его автоматическую активацию (виртуальное окружение лучше создавать в корне аккаунта, так как при необходимости его можно использовать в нескольких проектах):
cd ~ virtualenv --python=/opt/python3/bin/python3 virtualenv
Добавим его автоматическую активацию при входе на ssh:
echo "source ~/virtualenv/bin/activate" >> ~/.bash_profile
Шаг 2Активируем ранеее установленное окружение:
source virtualenv/bin/activate
Устанавливаем pip, mysqlclient и django последней доступной версии (можно использовать более старую, но более новая работать не будет).
pip3 install --user --upgrade pip pip3 install --user --upgrade mysqlclient pip3 install --user --upgrade django==3.2.15
Шаг 3Далее следует создание проекта, его лучше создавать в директории домена, на уровне директорий htdocs и logs:
cd ~/hostXXXXXXX.hostland.pro django-admin startproject newdjangoproject
hostXXXXXXXX
- номер Вашего аккаунта.
В файле newdjangoproject/newdjangoproject/settings.py нужно изменить несколько моментов:
- В строчке ALLOWED_HOSTS прописать Ваш домен, примерно в таком виде:
ALLOWED_HOSTS = ['.домен.ru']
- Если используется вышеуказанная структура директорий, то нужно будет указать STATIC_ROOT с полным путем, где будет генерироваться статика. По-умолчанию этой строки нет, и следует её указать ближе к концу в таком виде:
STATIC_ROOT = "/home/hostXXXXXXX/hostXXXXXXX.hostland.pro/htdocs/www/static"
- Тип базы данных надо изменить с sqlite на Mysql (из-за требования очень свежей версии SQLite, его использование будет выдавать ошибку). Для этого, предварительно создав базы данных и пользователя в Панели управления, содержимое блока "DATABASES ="
приводим к следующему виду:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'hostXXXXXXX_t', 'USER': 'hostXXXXXXX_t', 'PASSWORD': 'ZZZZZZZ', 'OPTIONS': { "init_command": "SET foreign_key_checks = 0;", }, } }
Остается только зайти в директорию проекта и создать структуру данных в Mysql:
cd newdjangoproject ./manage.py migrate
Поддерживает все актуальные версии Django.
Вначале создаем виртуальное окружение и прописываем его автоматическую активацию (виртуальное окружение лучше создавать в корне аккаунта, так как при необходимости его можно использовать в нескольких проектах):
cd ~ virtualenv --python=/usr/bin/python3.9 virtualenv
Добавим его автоматическую активацию при входе на ssh:
echo "source ~/virtualenv/bin/activate" >> ~/.bash_profile
Шаг 2Активируем ранеее установленное окружение:
source virtualenv/bin/activate
Устанавливаем pip, django:
pip3 install --user --upgrade pip pip3 install --user --upgrade django
Шаг 3Далее следует создание проекта, его лучше создавать в директории домена, на уровне директорий htdocs и logs:
cd ~/hostXXXXXXX.hostland.pro django-admin startproject newdjangoproject
hostXXXXXXXX
- номер Вашего аккаунта.
В файле newdjangoproject/newdjangoproject/settings.py нужно изменить несколько моментов:
- В строчке ALLOWED_HOSTS прописать Ваш домен, примерно в таком виде:
ALLOWED_HOSTS = ['.домен.ru']
- Если используется вышеуказанная структура директорий, то нужно будет указать STATIC_ROOT с полным путем, где будет генерироваться статика. По-умолчанию этой строки нет, и следует её указать ближе к концу, в таком виде:
STATIC_ROOT = "/home/hostXXXXXXXX/hostXXXXXXXX.hostland.pro/htdocs/www/static"
Шаг 4Переходим в раздел Файловый менеджер и в папке ~/hostXXXXXXX.hostland.pro/htdocs/www создаём новый файл django.wsgi. Прописываем туда следующие настройки:
import os import sys virtual_env = os.path.expanduser('/home/hostXXXXXXXX/virtualenv/') activate_this = os.path.join(virtual_env,'bin/activate_this.py') #execfile(activate_this, dict(__file__=activate_this)) with open(activate_this) as f: exec(f.read(), {'__file__': activate_this}) sys.path.append('/home/hostXXXXXXX/hostXXXXXXX.hostland.pro/htdocs/www/') sys.path.append('/home/hostXXXXXXX/hostXXXXXXX.hostland.pro/newdjangoproject/') sys.path.append('/home/hostXXXXXXX/hostXXXXXXX.hostland.pro/newdjangoproject/lib/') #print >> sys.stderr, sys.path os.environ['DJANGO_SETTINGS_MODULE'] = 'newdjangoproject.settings' import django.core.handlers.wsgi from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
Шаг 5После сохранения django.wsgi создаём ещё один файл .htaccess в той же директории и прописываем следующие директивы:
AddHandler wsgi-script .wsgi RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /django.wsgi/$1 [QSA,PT,L]
На этом установка завершена. Если всё сделано верно, то при открытии главной страницы сайта, Вы увидите стартовую страницу:
Удачной работы! Если возникнут вопросы - напишите нам, пожалуйста, тикет из