Назад в блог

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

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

Django — это бесплатный веб-фреймворк с открытым исходным кодом, созданный на Python. Впервые опубликованный в 2005 году, Django воплощает в себе девиз «быстрая разработка и чистый, прагматичный дизайн». Фреймворк, развернутый на веб-сервере, позволяет быстро создавать веб-интерфейс с богатым функционалом, безопасностью и масштабируемостью.

Любое веб-приложение использует базы данных для хранения своего контента. Django, будучи современным фреймворком, поддерживает ряд стандартных систем управления базами данных, например, PostgreSQL, SQLite, MySQL и т. д. В этом руководстве будет показано, как подключить приложение Django к базе данных MySQL.

Предварительные требования

Чтобы следовать этому руководству, вам необходимо выполнить определенные предварительные условия перед переходом к Django и подключению к базе данных:

Установка и настройка Python 3

Django написан на Python. Для запуска любого приложения Python требуется, чтобы в системе были установлены исполняемые файлы Python. В Ubuntu Python установлен по умолчанию. Здесь мы будем использовать Python 3. В терминале выполните следующие команды. Сначала обновите кэш APT и обновите (если доступно) все установленные пакеты:

Python 3 доступен напрямую из официальных репозиториев пакетов Ubuntu. Пакет python-is-python3  создает символическую ссылку python на исполняемый файл python3 для удобства использования:

Затем проверьте, прошла ли установка успешно:

После этого нам понадобится pip. Это стандартный менеджер пакетов Python. Он отвечает за управление дополнительными библиотеками Python, которые не входят в стандартную библиотеку. Обратите внимание, что мы устанавливаем pip3 (for Python 3):

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

Установка и настройка MySQL

В этом разделе будет кратко показана установка и настройка MySQL. Он доступен в стандартных репозиториях пакетов Ubuntu:

Если установка прошла успешно, MySQL начнет работать в фоновом режиме. Проверьте, правильно ли он работает:

Django App 1

Сервер MySQL запущен и работает. Теперь мы можем безопасно перейти к разработке нашего приложения Django.

Работа с Django

  • Создание демонстрационного приложения Django

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

Нам понадобится модуль Python venv для создания виртуального окружения внутри каталога. Установите модуль с помощью APT:

Затем перейдите в каталог и создайте виртуальное окружение. Для ясности мы назвали окружение demoapp_env:

Затем активируйте виртуальное окружение, запустив activate скрипт:

Django App 2

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

Django установлен и готов к использованию. Вызовите команду django-admin для создания нового проекта Django. После этого дайте приложению подходящее имя:

Будет создан демонстрационный проект с необходимыми файлами и директориями проекта:

Django App 3

Каркас проекта готов. Далее нам нужно правильно настроить его для достижения нашей цели.

  • Редактирование настроек проекта Django

Все конфигурации проекта хранятся в файле settings.py. Он находится в директории проекта Django. Мы начнем с установки правильного часового пояса и списка хостов, которые могут подключаться к приложению Django. Откройте конфигурационный файл в текстовом редакторе:

Прокрутите скрипт вниз и найдите запись TIME_ZONE. Для демонстрации часовой пояс установлен на America/New_York:

TIME_ZONE

Для справки, следующая команда выведет список всех поддерживаемых часовых поясов в Linux:

Далее прокрутите до записи ALLOWED_HOSTS. Она определяет, какие машины могут иметь доступ к приложению. Для демонстрации она содержит только localhost:

Django App 4Затем сохраните файл и закройте редактор. Следующая команда применит изменения:

python manageТеперь нам нужно создать учетную запись администратора для веб-приложения. Эта учетная запись будет использоваться для доступа к панели администратора Django. Выполните следующую команду:

Django App 5Потребуется ввести имя пользователя, email и пароль. Теперь приложение готово к подключению к базе данных.

Подключение к MySQL

  • Установка коннекторов MySQL и библиотек разработки

Чтобы интегрировать MySQL в приложение Django, нам понадобятся дополнительные библиотеки Python 3, которые предоставят необходимые инструменты. Мы будем использовать коннектор базы данных mysqlclient. Это форк MySQLdb.

Убедитесь, что у нас установлен python3-dev :

Нам также понадобятся дополнительные заголовочные файлы и библиотеки Python и MySQL:

После завершения установки используйте pip для установки модуля Python mysqlclient. Могут возникнуть сообщения об ошибках, которые можно проигнорировать:

  • Настройка выделенной базы данных

Следующим шагом является настройка выделенной базы данных и пользователя базы данных для нашего приложения Django. Запустите оболочку MySQL от имени пользователя root :

Чтобы проверить все доступные на данный момент базы данных, выполните следующий запрос:

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

Затем проверьте создание:

Django App 6Теперь создайте выделенного пользователя MySQL. Мы настроим этого пользователя как владельца базы данных. Приложение Django будет использовать учетные данные этого пользователя для работы с базой данных MySQL:

Предоставьте пользователю demoapp_user полные права на базу данных demoapp_data:

Чтобы изменения прав вступили в силу, перезагрузите MySQL grant tables:

Django App 7Теперь база данных готова к подключению к приложению Django.

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

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

Прокрутите вниз до записи DATABASES и введите следующий код:

Django App 8Сохраните файл и закройте редактор. Следующий шаг — настроить конфигурационный файл, описанный в коде ранее. Используйте sudo для открытия текстового файла в указанном месте:

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

default-character-setЧтобы изменения вступили в силу, нам нужно перезапустить сервер MySQL:

  • Тестирование подключения к MySQL

Теперь пришло время проверить, правильно ли работает подключение к MySQL. Если сервер Django запускается без проблем, значит, подключение работает нормально. В противном случае что-то не так. Сначала примените все изменения, внесенные в проект Django:

python manageТеперь перейдите в следующий каталог проекта и запустите сервер Django:

python manage.py runserverЗатем попробуйте получить доступ к серверу из веб-браузера:

server_ip_address

Вуаля! Мы успешно перешли на страницу приветствия Django. Это также подтверждает, что подключение к MySQL работает правильно. После завершения задачи вы можете безопасно выйти из виртуального окружения:

Заключение

В этом руководстве вы узнали основы совместного использования Django и MySQL. Мы создали приложение Django и показали, как подключить его к базе данных MySQL. Секрет кроется в конфигурационном файле Django settings.py. Мы также изменили некоторые базовые настройки, такие как ALLOWED_HOSTS и TIME_ZONE. Django невероятно гибок. Помимо MySQL, он также поддерживает другие SQL-серверы, такие как PostgreSQL, веб-серверы, такие как Nginx, и т. д.

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

Приятной работы!

author

Hark Labs

Автор · CloudSigma

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

Комментарии

Комментариев пока нет. Будьте первым.