Для создания динамических веб-сайтов можно воспользоваться десятками различных фреймворков. Одним из самых популярных является фреймворк Django, предназначенный для написания веб-сайтов на языке Python.
Но на разработке процесс не заканчивается, ведь ваше готовое приложение нужно разместить на хостинге или в облаке.
В данной статье мы опубликуем тестовое приложение, используя сервис Apps от облачного провайдера Timeweb Cloud.
Как и прочие услуги в Timeweb Cloud, для того, чтобы начать использовать сервис Apps, необходимо зарегистрироваться.
Регистрация новых пользователей доступна по ссылке. Выберите, нужно ли вам зарегистрироваться на физическое лицо или компанию, и введите требуемые данные.
Сразу после вы попадете в свою панель управления. Сохраните предложенный пароль для входа или замените его на собственный — и можно начинать работу с Timeweb Cloud.
В этой инструкции мы будем разворачивать в Apps Django-приложение.
Django использует шаблоны проектирования MVC, что позволяет разделить архитектуру на три независимых модуля: модель (Model), представление (View) и контроллер (Controller). Благодаря этому можно работать над компонентами и изменять их независимо друг от друга.
Наше веб-приложение представляет собой прототип простейшего интернет-магазина. На главной странице присутствует виртуальная витрина с карточками товара. С целью облегчения поиска необходимой вещи на главной странице внизу находятся категории. Также присутствует сервис аутентификации для входа в личный кабинет пользователя. Пользователи и карточки товаров будут храниться в SQLite, которая используется в Django по умолчанию. Ее отличительная особенность от MySQL / PostgreSQL и других СУБД заключается в отсутствии клиент-серверной архитектуры. Все данные нашего приложения SQLite будет хранить в отдельном файле.
Код описанного приложения можно найти на Гитхабе.
1) После авторизации в личном кабинете в меню слева необходимо перейти в раздел «Apps» и кликнуть «Создать»:
2) Дальше нужно выбрать корректный тип приложения. Идем в раздел «Backend» и кликаем на Django:
3) Код созданного приложения уже должен быть загружен в репозиторий. Это может быть один из поддерживаемых репозиториев или любой другой, позволяющий подключаться по ссылке.
Код нашего проекта хранится в GitHub. При выборе GitHub необходимо решить, какую из предлагаемых опций использовать — предоставить доступ до всех хранимых репозиториев в GitHub или разрешить доступ только к репозиторию с вашим проектом. Мы выберем пункт «Only select repositories», а далее — наш репозиторий с кодом проекта:
Как только репозиторий будет выбран, кликаем «Install & Authorize».
4) Когда удаленный репозиторий с кодом будет подключен, вам станет доступен функционал для смены ветки, из которой будет собираться проекта. По умолчанию будет выбрана ветка main, но ее можно изменить на ту, которая вам необходима — просто выберите ее из выпадающего списка.
Среди дополнительных настроек можно задать “Сборку по последнему выполненному коммиту”. Это означает, что сборка приложения будет происходить с последнего коммита (с последнего внесения изменений). Если вы не хотите запускать сборку по последнему коммиту, то можете выбрать другой коммит, присутствующий в вашем репозитории:
5) Выбор региона используется для сервера, на котором будет развернуто ваше веб-приложение. Для достижения максимально быстрого сетевого отклика выбирайте тот географический регион, который ближе всего находится к вам физически. Чтобы узнать, какой из предложенных регионов имеет наименьший отклик, обратите внимание на задержку севера (он же ping), расположенный справа сверху у каждого региона:
6) Для сервера также необходимо выбрать конфигурацию. Мы используем тестовое приложение без какой-либо нагрузки, поэтому выберем минимально возможную конфигурацию:
Однако стоит отметить, что при развертывании реальных приложений на Django, необходимо ориентироваться на ту конфигурацию, которая будет справляться с возрастающей нагрузкой.
7) Многие приложения требуют сборки, а также использования команды запуска. В разделе «Настройка приложения» вы можете использовать как одну опцию, так и две сразу.
Команда сборки собирает ваше приложение. Это происходит за счет процесса преобразования файлов исходного кода (процесс компиляции). В большинстве случаев команда сборки необходима для приложений, написанных на таких языках программирования, как Java, GO, C, C#, C++ и т.д. Мы используем фреймворк Django, поэтому команду сборки указывать мы не будем, т.к. язык программирования Python не является компилируемым.
Команда запуска только запускает проект без необходимости в сборке и компиляции. В нашем примере необходима команда для запуска проекта. Команда будет следующей:
python3 manage.py runserver 0.0.0.0:8000
Дополнительно рекомендуем более подробно ознакомиться с процессом публикации Django приложений на production-серверы.
Также многие приложения на Django внутри себя используют переменные. Для добавления переменных используется раздел «Переменные». Например, в проекте может присутствовать переменная с именем PASSWORD
, в значении которой указано test123#$
:
PASSWORD test123#$
8) Имя приложения используется для его отображения в панели управления Timeweb Cloud. Система автоматически генерирует случайное имя, но его можно изменить на любое другое:
9) Проверьте все настройки еще раз. Если все задано правильно, переходите к деплою приложения, нажав на кнопку «Запустить деплой»:
После оплаты и запуска деплоя откроется меню Дашборда приложения, в котором можно найти всю необходимую информацию — от состояния деплоя до логов приложения:
Первоочередная настройка может занимать до 10 минут или больше.
Все шаги по процессу деплоя можно отслеживать в разделе «Деплой». Если во время процесса не будет ошибок, то финальным статусом будет отображено — «Успешно»:
10) Развернутое приложение уже автоматически доступно в сети интернет — вам не придется дополнительно арендовать доменное имя, система автоматически назначит его сама. Готовое доменное имя будет отображаться в пункте «Домен»:
При переходе по доменному имени будет отображен интерфейс запущенного сервиса:
Созданный системой домен — это общедоступный домен, и любой пользователь может по нему перейти. Каждый запрос, отправленный на доменное имя приложения, будет отображен в разделе «Логи приложения»:
Процесс развертывания приложения написанного на Django был успешно закончен.
В текущей статье был подробно рассмотрен процесс развертывания приложения, написанного на Django, в сервисе Apps, который существенно помогает сократить шаги для развертывания и публикации готовых веб-приложений в сети интернет.