Назад в блог

Использование PostgreSQL с Django на Ubuntu 21.04 Server

Использование PostgreSQL с Django на Ubuntu 21.04 Server

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

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

В этом руководстве мы покажем интеграцию PostgreSQL в качестве бэкенда на примере демонстрационного приложения Django.

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

Работа с Django требует определенных системных настроек.

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

Шаг 1. Установка необходимых компонентов

Для работы нашего проекта нам понадобится ряд важных пакетов, установленных в системе Ubuntu. К счастью, все они доступны напрямую из официальных репозиториев пакетов Ubuntu. Эти пакеты включают компоненты Python и компоненты базы данных (PostgreSQL).

Сначала запустите терминал и обновите кэш пакетов APT:

Using PostgreSQL with Django 1

Затем установите пакеты:

Using PostgreSQL with Django 2

Шаг 2. Подготовка базы данных

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

Во время установки PostgreSQL создает специального пользователя postgres. Он имеет права на выполнение любых административных задач в PostgreSQL. Войдите в postgres учетную запись:

Вы должны перейти в новую сессию командной строки от имени пользователя postgres. Затем откройте интерактивный терминал PostgreSQL:

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

Далее мы создадим выделенного пользователя базы данных. Мы будем использовать этого пользователя для доступа к базе данных Django:

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

Давайте кратко разберем эти команды:

  • Мы устанавливаем кодировку по умолчанию UTF-8. Именно этого ожидает Django при взаимодействии с базами данных.

  • Схема транзакций по умолчанию установлена в значение «read committed» (чтение зафиксированных данных), чтобы блокировать чтение из незафиксированных транзакций.

  • Часовой пояс должен быть установлен в соответствии с вашим местоположением.

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

Using PostgreSQL with Django 4

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

На этом работа с PostgreSQL завершена. Выйдите из оболочки psql и выйдите из сеанса postgres .

Шаг 3. Установка Django

Мы настроили необходимый сервер баз данных для нашего приложения Django. Теперь мы установим и настроим само приложение Django. Хотя Django доступен напрямую из официального репозитория Ubuntu, мы не рекомендуем использовать этот метод. В этом случае Django будет установлен глобально для всей системы. Для большей гибкости и простоты управления мы установим Django в виртуальном окружении. Установка и настройка Django внутри виртуального окружения Python является стандартной практикой.

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

Установите virtualenv:

Using PostgreSQL with Django 5

Далее наша цель — создать выделенный каталог для развертывания виртуального окружения Python. Он послужит основой для нашего приложения Django. Для демонстрации наше приложение будет называться sample_app. Создайте новый каталог:

Перейдите в созданный каталог и создайте виртуальное окружение:

После этого активируйте виртуальное окружение:

Виртуальное окружение готово к работе. Затем мы будем использовать pip для установки Django и psycopg2 (адаптера Python для PostgreSQL):

Using PostgreSQL with Django 6

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

Шаг 4. Настройка проекта Django

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

Откройте файл settings.py в текстовом редакторе:

Прокрутите вниз до раздела DATABASES. По умолчанию он настроен на использование SQLite:

Для наших целей измените код следующим образом:

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

После завершения сохраните файл и закройте редактор.

Шаг 5. Миграция базы данных

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

Чтобы применить миграции базы данных, вызовите сценарий управления manage.py:


Using PostgreSQL with Django 7

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

Using PostgreSQL with Django 8

Эта учетная запись суперпользователя будет выполнять роль учетной записи администратора для нашего приложения Django.

Шаг 6. Тестирование изменений

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

Поскольку мы разрабатываем приложение Django локально, мы запустим сервер на localhost. По традиции мы запустим его на порту 8000. Если у вас настроен брандмауэр, он должен разрешать трафик на порт 8000. Узнайте больше о основах UFW здесь.

Запустите сервер Django:

Перейдите по URL-адресу в браузере:

Using PostgreSQL with Django 9

Вы должны попасть на страницу успешной установки Django. Чтобы перейти на страницу администратора Django, откройте следующий URL-адрес:

Using PostgreSQL with Django 10

Для входа вам нужно использовать созданного нами суперпользователя:

Вуаля! Мы успешно попали в панель администратора!

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

Заключение

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

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

Удачной работы!

author

Preslav Dobrev

Автор · CloudSigma

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

Комментарии

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