Больше не нужно искать работу мечты — присоединяйтесь к команде Клауда

Как создать и развернуть приложение на Django: быстрый и простой деплой с Apps

Александр Бархатов
Александр Бархатов
Технический писатель
08 июля 2024 г.
44
6 минут чтения
Средний рейтинг статьи: 5

Для создания динамических веб-сайтов можно воспользоваться десятками различных фреймворков. Одним из самых популярных является фреймворк Django, предназначенный для написания веб-сайтов на языке Python. 

Но на разработке процесс не заканчивается, ведь ваше готовое приложение нужно разместить на хостинге или в облаке.  

В данной статье мы опубликуем тестовое приложение, используя сервис Apps от облачного провайдера Timeweb Cloud.

Регистрация в Timeweb Cloud

Как и прочие услуги в Timeweb Cloud, для того, чтобы начать использовать сервис Apps, необходимо зарегистрироваться.

Регистрация новых пользователей доступна по ссылке. Выберите, нужно ли вам зарегистрироваться на физическое лицо или компанию, и введите требуемые данные.

Сразу после вы попадете в свою панель управления. Сохраните предложенный пароль для входа или замените его на собственный — и можно начинать работу с Timeweb Cloud.

Описание разворачиваемого приложения

В этой инструкции мы будем разворачивать в Apps Django-приложение. 

Django использует шаблоны проектирования MVC, что позволяет разделить архитектуру на три независимых модуля: модель (Model), представление (View) и контроллер (Controller). Благодаря этому можно работать над компонентами и изменять их независимо друг от друга. 

Наше веб-приложение представляет собой прототип простейшего интернет-магазина. На главной странице присутствует виртуальная витрина с карточками товара. С целью облегчения поиска необходимой вещи на главной странице внизу находятся категории. Также присутствует сервис аутентификации для входа в личный кабинет пользователя. Пользователи и карточки товаров будут храниться в SQLite, которая используется в Django по умолчанию. Ее отличительная особенность от MySQL / PostgreSQL и других СУБД заключается в отсутствии клиент-серверной архитектуры. Все данные нашего приложения SQLite будет хранить в отдельном файле. 

Код описанного приложения можно найти на Гитхабе. 

Публикация приложения в Timeweb Cloud Apps

1) После авторизации в личном кабинете в меню слева необходимо перейти в раздел «Apps» и кликнуть «Создать»:

Image1

2) Дальше нужно выбрать корректный тип приложения. Идем в раздел «Backend» и кликаем на Django:

Image14

3) Код созданного приложения уже должен быть загружен в репозиторий. Это может быть один из поддерживаемых репозиториев или любой другой, позволяющий подключаться по ссылке.

Image7

Код нашего проекта хранится в GitHub. При выборе GitHub необходимо решить, какую из предлагаемых опций использовать — предоставить доступ до всех хранимых репозиториев в GitHub или разрешить доступ только к  репозиторию с вашим проектом. Мы выберем пункт «Only select repositories», а далее — наш репозиторий с кодом проекта:

Image5

Как только репозиторий будет выбран, кликаем «Install & Authorize».

4) Когда удаленный репозиторий с кодом будет подключен, вам станет доступен функционал для смены ветки, из которой будет собираться проекта. По умолчанию будет выбрана ветка main, но ее можно изменить на ту, которая вам необходима — просто выберите ее из выпадающего списка.

Image3

Среди дополнительных настроек можно задать “Сборку по последнему выполненному коммиту”. Это означает, что сборка приложения будет происходить с последнего коммита (с последнего внесения изменений). Если вы не хотите запускать сборку по последнему коммиту, то можете выбрать другой коммит, присутствующий в вашем репозитории:

Image10

5) Выбор региона используется для сервера, на котором будет развернуто ваше веб-приложение. Для достижения максимально быстрого сетевого отклика выбирайте тот географический регион, который ближе всего находится к вам физически. Чтобы узнать, какой из предложенных регионов имеет наименьший отклик, обратите внимание на задержку севера (он же ping), расположенный справа сверху у каждого региона:

Image16

6) Для сервера также необходимо выбрать конфигурацию. Мы используем тестовое приложение без какой-либо нагрузки, поэтому выберем минимально возможную конфигурацию:

Image11

Однако стоит отметить, что при развертывании реальных приложений на Django, необходимо ориентироваться на ту конфигурацию, которая будет справляться с возрастающей нагрузкой.

7) Многие приложения требуют сборки, а также использования команды запуска. В разделе «Настройка приложения» вы можете использовать как одну опцию, так и две сразу.

Команда сборки собирает ваше приложение. Это происходит за счет процесса преобразования файлов исходного кода (процесс компиляции). В большинстве случаев команда сборки необходима для приложений, написанных на таких языках программирования, как Java, GO, C, C#, C++ и т.д. Мы используем фреймворк Django, поэтому команду сборки указывать мы не будем, т.к. язык программирования Python не является компилируемым.

Команда запуска только запускает проект без необходимости в сборке и компиляции. В нашем примере необходима команда для запуска проекта. Команда будет следующей:

python3 manage.py runserver 0.0.0.0:8000

Image8

Дополнительно рекомендуем более подробно ознакомиться с процессом публикации Django приложений на production-серверы.

Также многие приложения на Django внутри себя используют переменные. Для добавления переменных используется раздел «Переменные». Например, в проекте может присутствовать переменная с именем PASSWORD, в значении которой указано test123#$:

PASSWORD test123#$

Image12

8) Имя приложения используется для его отображения в панели управления Timeweb Cloud. Система автоматически генерирует случайное имя, но его можно изменить на любое другое:

Image2

9) Проверьте все настройки еще раз. Если все задано правильно, переходите к деплою приложения, нажав на кнопку «Запустить деплой»:

Image4

После оплаты и запуска деплоя откроется меню Дашборда приложения, в котором можно найти всю необходимую информацию — от состояния деплоя до логов приложения:

Image18

Первоочередная настройка может занимать до 10 минут или больше.

Все шаги по процессу деплоя можно отслеживать в разделе «Деплой». Если во время процесса не будет ошибок, то финальным статусом будет отображено — «Успешно»:

Image13

10) Развернутое приложение уже автоматически доступно в сети интернет — вам не придется дополнительно арендовать доменное имя, система автоматически назначит его сама. Готовое доменное имя будет отображаться в пункте «Домен»:

Image9

При переходе по доменному имени будет отображен интерфейс запущенного сервиса:

Image6

Созданный системой домен — это общедоступный домен, и любой пользователь может по нему перейти. Каждый запрос, отправленный на доменное имя приложения, будет отображен в разделе «Логи приложения»:

Image17

Процесс развертывания приложения написанного на Django был успешно закончен.

Заключение

В текущей статье был подробно рассмотрен процесс развертывания приложения, написанного на Django, в сервисе Apps, который существенно помогает сократить шаги для развертывания и публикации готовых веб-приложений в сети интернет. 

08 июля 2024 г.
44
6 минут чтения
Средний рейтинг статьи: 5
Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
Комментарии 0