Инструменты разработки сайтов постоянно совершенствуются. Расширения функционала ресурсов обычно добиваются за счет применения различных языков программирования, например того же Python. Однако он требует довольно много времени, чтобы создавать интерактивные модули с нуля, потому и становятся популярными фреймворки, содержащие массу шаблонных решений.
Что такое Django и зачем он нужен
Один из популярных фреймворков – Django. Это свободный проект, позволяющий разрабатывать ПО с возможностью полной изоляции отдельных модулей. Фактически веб-ресурсы собираются из двух и более блоков, которые редактируются независимо друг от друга. В этом фреймворке используется принцип разработки, нацеленный на уменьшение дублирования данных (DRY).
Платформа Django подходит в следующих случаях:
- Планируется пользоваться только свободным ПО.
- Требуется быстро разработать сайт, внести изменения в готовый проект.
- Хочется сохранить совместимость с другими разработками.
Применение популярного фреймворка позволяет свободно менять исполнителя. У Django есть весьма развитое сообщество разработчиков – в нем легко найти нужную документацию или помощника в доработке готовых модулей или создании новых. Единственное ограничение платформы заключается в необходимости уместить все обрабатываемые данные в единой базе.
Если приложение становится «массивным», то приходится разбивать его на микросервисы, которые обрабатываются отдельно. Такой подход позволяет применять различные сценарии для каждого из независимых модулей. Но рассчитывать только Django не стоит, его возможностей хватит только на реализацию некоторых функций.
Как установить Django на сервер
Сайт, разработанный с включением модулей фреймворка Django, будет работать только при наличии установленной платформы (на хостинге). Есть несколько вариантов ее инсталляции – автоматически (у хостинг-провайдера Timeweb фреймворк можно найти в разделе «Каталог CMS», вкладка «Прочее») или вручную. Второй способ предполагает предварительную установку виртуального окружения virtualenv.
Это инструмент для создания изолированных сред, где запускаются обособленные проекты Python. Такое решение избавляет от проблемы зависимостей и совместимости разных версий приложения между собой. Подробнее о функционале virtualenv лучше почитать в официальных документах, а сейчас речь идет лишь об инсталляции программного обеспечения.
Последовательность действий:
Скачать актуальный релиз и распаковать его в корневой каталог:
wget https://files.pythonhosted.org/packages/53/c0/c7819f0bb2cf83e1b4b0d96c901b85191f598a7b534d297c2ef6dc80e2d3/virtualenv-16.6.0.tar.gz tar xvfz virtualenv-16.6.0.tar.gz
Создать виртуальное окружение с использованием нужной версии Python:
# Если требуется Python3: python3 virtualenv-16.6.0/virtualenv.py ~/myenv или # Если требуется Python2: python virtualenv-16.6.0/virtualenv.py ~/myenv
Активировать виртуальное окружение:
source ~/myenv/bin/activate
Инсталлировать Django при помощи команды pip:
pip install django
Если проект еще не создавался, сделать это командой:
django-admin.py startproject имя_проекта
Создать файл .htaccess, который следует расположить «по умолчанию» в каталоге public_html сайта. Внести в него содержимое:
Options +ExecCGI AddHandler wsgi-script .wsgi RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.wsgi/$1 [QSA,PT,L]
По тому же пути разместить файл index.wsgi (он также создается с нуля). Его содержимое для версии Django выше 1.7:
import os import sys sys.path.append('ПУТЬ_ДО_ПРОЕКТА') sys.path.append('ПУТЬ_ДО_ПАКЕТОВ_PYTHON') os.environ['DJANGO_SETTINGS_MODULE'] = 'имя_проекта.settings' import django django.setup() from django.core.handlers import wsgi application = wsgi.WSGIHandler()
Значение «путь до проекта» – это полный путь до каталога с установленной платформой Django, «путь до пакетов Python» – путь до каталога, куда было установлено виртуальное окружение virtualenv. «Имя проекта» – свободное название по решению администратора. Теперь на очереди создание файла settings.py. Он располагается по пути:
~/имя_сайта/public_html/имя_проекта/имя_проекта/settings.py
В нем нужно найти строку:
ALLOWED_HOSTS = []
И указать в ней название сайта:
ALLOWED_HOSTS = ['ДОМЕН']
Или сразу нескольких сайтов:
ALLOWED_HOSTS = ['ДОМЕН1','ДОМЕН2','ДОМЕН3']
Отладка этого файла поможет убедиться в отсутствии ошибок. Она инициируется внесением в него строки DEBUG = True. Проверить подключение проще всего вводом в адресную строку браузера названия сайта (домена). Если все установилось корректно, пользователь увидит приветственную страницу Django.
Система готова к эксплуатации (развертыванию сайтов). Перед началом программирования стоит уточнить версию Python, которая используется на хостинге, командой python3 – version. Это снизит риски сбоев из-за несовместимости приложения с интерпретатором.
В остальном вопросов обычно не возникает или они решаются путем обращения в техническую поддержку провайдера.
Комментарии
/home/l/{ваш_логин_timeweb}/{корневая_папка_с_файлами_сайта}/public_html/{название_проекта}
/home/l/{ваш_логин_timeweb}/{корневая_папка_с_файлами_сайта}/venv/lib/python3.4/site-packages