Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

Как подключить проект на Django к облачной базе данных

1183
12 минут чтения
Средний рейтинг статьи: 5

Django — это веб-фреймворк высокого уровня, написанный на языке программирования Python и построенный на шаблоне проектирования MVC (Model, View, Controller).

По сути, Django является некой программной платформой (каркасом), компонентами которой управляет разработчик. К составным частям Django относятся:

  • графический интерфейс;

  • программные скрипты элементов приложения;

  • мультимедиа (фото, видео, аудио);

  • базы данных.

Таким образом, сам фреймворк является «ядром» приложения, а периферические настраиваемые модули (компоненты) формируют конкретную функциональность приложения.

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

Сперва мы подготовим окружение (установим Python и Django), после чего настроим облачную базу данных MySQL и подключим ее к Django. Технологический стек будет развернут на виртуальном сервере Timeweb Cloud под управлением операционной системы Ubuntu 22.04.

1. Подготовка окружения

Обновление системы

Обновим список доступных репозиториев:

    

А также обновим установленные в системе пакеты:

    

Установка Python

Перед установкой Python сперва лучше проверить, есть ли он уже в системе:

    

Если Python уже установлен, в консоли появится соответствующее сообщение, а также откроется режим ввода команд Python:

    

В этом случае просто выходим из Python:

    

Обратите внимание, что в этой инструкции используется версия Python 3.10.12.

Если же Python отсутствует в системе, устанавливаем его через пакетный менеджер APT:

    

Флаг -y используем для автоматического ответа «yes» на все возникающие во время установки вопросы.

Чтобы убедиться в корректности установки, запрашиваем версию Python:

    

Результат консольного вывода должен быть примерно таким:

    

Разумеется, ваша версия Python может иметь отличия, однако она должна поддерживать версию используемого фреймворка Django.

Установка виртуальной среды Python

Для работы приложения на Django нам потребуется инструмент для создания виртуальной среды Python:

    

Он будет использован непосредственно перед инициализацией приложения.

Установка пакетного менеджера Pip

Некоторые модули для последней версии Python, которые будут установлены далее, доступны для загрузки только через пакетный менеджер Pip. Поэтому установим его:

    

Для проверки корректности установки проверим версию менеджера:

    

В консоли должно появиться примерно такое сообщение:

    

В этом руководстве использовался Pip версии 22.0.2.

Создание рабочей директории

Для проекта Django создадим отдельный каталог, в котором будут размещаться исходники:

    

Сразу же перейдем в созданную директорию:

    

И подготовим в ней виртуальную среду Python:

    

Проверим состояние каталога проекта:

    

Если все прошло успешно, внутри появится папка виртуальной среды:

    

Теперь выполним активацию виртуальной среды:

    

Виртуальная среда создана! Теперь можно перейти к инициализации рабочих каталогов Django.

Установка модуля MySQL для Python

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

При этом предварительно нужно поставить некоторые зависимости:

    

После этого загружаем сам клиент MySQL через Pip:

    

При этом сам модуль является частью Python, а не веб-фреймворка Django.

Установка Django

Установим фреймворк Django также через пакетный менеджер APT:

    

После чего проверим корректность установки, запросив версию фреймворка:

    

Если все прошло успешно, в консоли появится примерно такое сообщение:

    

В этой инструкции используется версия Django 5.0.3. Возможно ваша версия будет иметь отличия, однако она должна поддерживаться установленным в системе интерпретатором Python.

2. Создание приложения

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

  • Проект. Это программа на Django в целом, которая состоит из некоторых частей — приложений.

  • Приложение. Это своего рода компонент проекта. Как правило, в приложение изолируется узкий набор функций.

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

Создание проекта

Сперва создадим специальную директорию проекта:

    

В данном случае project — имя проекта, которое может быть произвольным. Однако нельзя использовать названия встроенных компонентов Python и Django. Например, при использовании имени test возникнет ошибка из-за конфликта со стандартным пакетом Python.

Также не забудьте добавить точку (.) в конце команды создания. Если этого не сделать, Django создаст дополнительный вложенный каталог проекта — внутри директории project будет еще одна директория project.

Проверим рабочий каталог:

    

В нем должна появиться директория созданного проекта с соответствующим именем:

    

Перейдем в каталог приложения:

    

И посмотрим на его состояние:

    

В консоли появится список основных файлов проекта Django:

    

Файл settings.py является основным конфигурационным файлом Django — именно в нем соединяется проект с приложением, а также указываются данные для доступа к внешней базе данных.

Создание приложения

Поднимемся на уровень выше в каталог work:

    

После чего инициализируем каталог приложения с помощью ранее появившейся утилиты управления manage.py:

    

Теперь проверим состояние директории work:

    

Как видно, рядом с каталогом проекта project появился каталог приложения application:

    

Обратите внимание, что application находится на том же уровне, что и project, а не внутри него.

Первичная конфигурация приложения

Теперь мы должны подключить созданное приложение к проекту Django. Для этого мы перейдем в каталог проекта:

    

После чего откроем основной файл настроек проекта — settings.py:

    

Здесь нам нужно найти переменную INSTALLED_APPS и видоизменить ее до следующего состояния:

    

По сути, мы добавили еще одну строку в массив. В этой строке префиксы application и Application (тот, который ApplicationConfig) указывают на название созданного приложения.

В этом же файле найдем другую переменную ALLOWED_HOSTS и добавим в нее IP-адрес удаленного сервера (в этом руководстве используется облачный сервер Timeweb Cloud), на который была выполнена установка Django.

Например, отредактированная переменная может выглядеть так:

    

Сохраняем и выходим. Теперь можно вернуться обратно на уровень выше:

    

Запуск веб-приложения

Перед запуском сервера выполним команду предварительной миграции базы данных Django, чтобы в консоли не возникало ошибок:

    

По умолчанию Django работает со SQLite, однако чуть позже мы заменим ее на MySQL и повторно выполним миграцию.

Теперь создадим пользователя Django:

    

В консольном терминале появится предложение ответить на несколько вопросов:

    

Таким образом, заполняем следующую информацию:

  • Имя пользователя

  • Email

  • Пароль

  • Пароль (повторно)

Далее запустим непосредственно сам сервер:

    

Обратите внимание, что мы запускаем сервер на 80 порту (вместо стандартного 8000 порта, который использует Django по умолчанию) для того, чтобы иметь возможность открыть сайт через браузер без явного указания порта в адресной строке.

Далее открываем браузер и вводим адрес вашего удаленного сервера в браузер. Например, адрес может быть таким:

    

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

Image2

Также вы можете зайти в панель администратора Django, введя в адресную строку браузера следующий адрес:

    

Например, адрес может быть таким:

    

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

Image9

Сама админ-панель выглядит просто и показывает только таблицу с пользователями, группы доступа и историю последних действий.

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

Image7

Пока что можно выключить сервер Django, нажав на клавиатуре сочетание клавиш Ctrl + C.

3. Создание базы данных

В этой инструкции будет использоваться облачная база данных MySQL, размещенная на инфраструктуре Timeweb Cloud. Процесс создания, настройки, управления и работы с базой данных будет выполняться через графический интерфейс панели управления.

Соответственно необходимо предварительно авторизоваться на странице входа в Timeweb Cloud.

Создание и запуск базы данных

Чтобы перейти к созданию базы данных, нужно выполнить несколько действий в панели управления Timeweb Cloud:

  • В левом меню перейти во вкладку Базы данных

  • В открывшемся разделе нажать на кнопку Создать

33433be5 33c3 4048 8cca D009641e0660

После этого вы окажетесь на странице создания (конфигурации) базы данных, где Timeweb Cloud предложит вам выбрать конкретный тип БД, локацию серверов, мощность по тарифу и ряд сетевых настроек:

На момент написания этой инструкции доступны следующие типы баз данных:

  • MySQL

  • PostgreSQL

  • Redis

  • MongoDB

  • OpenSearch

  • ClickHouse

  • Kafka

  • RabbitMQ

F42a005c 9592 40b9 Bee0 Caea90cb4b77

В этой инструкции мы будем использовать MySQL, размещенную на серверах в Санкт-Петербурге. Тарифный план можно выбрать индивидуально в зависимости от предполагаемых нагрузок вашего проекта.

В самой нижней части страницы создания БД нужно заполнить информацию о базе данных:

  • Название

  • Пароль (для лучшей безопасности рекомендуется использовать генерацию)

Image4

Стоимость аренды будет рассчитываться на основе выбранных настроек, отображаясь на кнопке Заказать. По окончании конфигурации жмем на нее.

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

Image1

Настройка базы данных

На странице управления БД перейдем во вкладку Базы данных, которая расположена в верхнем горизонтальном (а не левом вертикальном) меню.

Для начала удалим уже существующую БД default_db. Для этого жмем на 3 точки справа и выбираем Удалить из выпадающего списка. Во всплывающем окне подтверждаем удаление с помощью кнопки Да, удалить.

Image5

После этого создадим новую базу данных, нажав на кнопку Добавить. В названии указываем django_db и жмем кнопку Создать.

Далее переходим во вкладку Пользователи, чтобы назначить права доступа для созданной БД.

Обратите внимание, что на этой странице указаны имя и пароль пользователя БД, которые мы указывали (только пароль, имя стандартное) при создании базы данных. Впоследствии их нужно будет внести в конфигурационный файл Django, поэтому запомните их местонахождение в панели управления.

Жмем на 3 точки справа от существующего стандартного пользователя, после чего в выпадающем списке выбираем Привилегии.

Image6

На открывшейся странице база данных django_db будет уже выбрана, т.к. других БД не существует. Активируем все переключатели, наделяя пользователя всеми возможными полномочиями — по крайней мере, в рамках этой инструкции.

В дальнейшем права доступа можно будет настроить конкретно под задачи вашего проекта.

Image10

Теперь созданную базу данных можно подключать к проекту Django.

4. Подключение базы данных

Теперь нам необходимо обеспечить коммуникацию приложения Django с базой данной MySQL.

Для этого мы откроем конфигурационный файл приложения Django:

    

Найдем внутри параметр DATABASES и перезапишем его следующим содержимым:

    

В соответствующих параметрах мы указали:

  • Название «коннектора», который будет использоваться для коммуникации Django с MySQL

  • Имя созданной БД

  • Адрес облачной базы данных Timeweb Cloud

  • Стандартный порт MySQL

  • Пользователь MySQL, которого мы наделили правами доступа

  • Пароль пользователя MySQL

Теперь можно снова выполнить миграцию базы данных:

    

После чего запустить сервер:

    

Если все предыдущие этапы были выполнены корректно, в консоли появится стандартное сообщение о запуске:

    

При этом стандартная страница приложения Django опять станет доступна в браузере по IP-адресу вашего сервера.

Заключение

В этой инструкции было рассмотрено подключение облачный базы данных MySQL от Timeweb Cloud к самому простому проекту на веб-фреймворке Django.

В частности, было подробно показано, как:

  • Установить последнюю стабильную версию Python (в нашем случае это была версия 3.10.12)

  • Установить соответствующую версию фреймворка Django (была использована версия 5.0.3)

  • Подготовить виртуальную среду (venv) Python, в которой будет работать приложение Django

  • Инициализировать каталог проекта Django

  • Инициализировать каталог приложения Django

  • Выполнить базовую конфигурацию приложение Django

  • Создать и сконфигурировать базу данных MySQL через панель управления Timeweb Cloud

  • Подключить базу данных MySQL к приложению Django

Более подробную информацию (туториалы, гайды, документацию) о продвинутом использовании Django можно найти на официальном сайте фреймворка.

1183
12 минут чтения
Средний рейтинг статьи: 5
Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server