Django — это известный веб-фреймворк, который упрощает процесс создания надежных, масштабируемых, безопасных и высокопроизводительных веб-приложений. Это проект с открытым исходным кодом, написанный на Python. Вы можете ознакомиться с более подробной информацией о Django здесь.
Любому веб-приложению требуется база данных в качестве бэкенда для управления данными. Django поддерживает различные движки баз данных в качестве бэкенда, например, MySQL, PostgreSQL, SQLite и т. д. PostgreSQL — это мощная объектно-реляционная система управления базами данных с открытым исходным кодом. Она известна своей надежностью, масштабируемостью, безопасностью и богатым набором функций. Вы можете узнать больше о PostgreSQL здесь.
В этом руководстве мы покажем интеграцию PostgreSQL в качестве бэкенда на примере демонстрационного приложения Django.
Предварительные требования
Работа с Django требует определенных системных настроек.
- Правильно настроенный сервер Ubuntu 21.04. Узнайте больше о настройке сервера Ubuntu.
- Среда разработки Python. Django написан на Python, поэтому для его запуска требуется среда Python.
- Установленная СУБД PostgreSQL, так как мы будем использовать ее в качестве сервера баз данных для нашего приложения Django. Узнайте больше об установке и настройке PostgreSQL на Ubuntu здесь.
В этом руководстве также будет показано, как использовать различные модули и библиотеки Python, необходимые для работы приложения Django.
Шаг 1. Установка необходимых компонентов
Для работы нашего проекта нам понадобится ряд важных пакетов, установленных в системе Ubuntu. К счастью, все они доступны напрямую из официальных репозиториев пакетов Ubuntu. Эти пакеты включают компоненты Python и компоненты базы данных (PostgreSQL).
Сначала запустите терминал и обновите кэш пакетов APT:
|
1 |
sudo apt update |
Затем установите пакеты:
|
1 |
sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib |
Шаг 2. Подготовка базы данных
Теперь PostgreSQL установлен и готов к использованию. Далее мы создадим выделенную базу данных и пользователя для нашего приложения Django. Наличие выделенного пользователя полезно для управления базой данных и правами доступа.
Во время установки PostgreSQL создает специального пользователя postgres. Он имеет права на выполнение любых административных задач в PostgreSQL. Войдите в postgres учетную запись:
|
1 |
sudo su – postgres |
Вы должны перейти в новую сессию командной строки от имени пользователя postgres. Затем откройте интерактивный терминал PostgreSQL:
|
1 |
psql |
Теперь мы создадим выделенную базу данных для нашего приложения Django. Рекомендуется дать ей имя, соответствующее приложению Django:
|
1 |
CREATE DATABASE <имя_базы_данных>; |
Далее мы создадим выделенного пользователя базы данных. Мы будем использовать этого пользователя для доступа к базе данных Django:
|
1 |
CREATE USER <имя_пользователя> WITH PASSWORD '<пароль>'; |
Следующий шаг — настроить несколько параметров подключения для нового пользователя. Это поможет ускорить операции с базой данных, так как не потребуется запрашивать эти значения при каждом установлении соединения. Выполните следующие команды:
|
1 2 3 |
ALTER ROLE <имя_пользователя> SET client_encoding TO 'utf8'; ALTER ROLE <имя_пользователя> SET default_transaction_isolation TO 'read committed'; ALTER ROLE <имя_пользователя> SET timezone TO '<часовой_пояс>'; |
Давайте кратко разберем эти команды:
-
Мы устанавливаем кодировку по умолчанию UTF-8. Именно этого ожидает Django при взаимодействии с базами данных.
-
Схема транзакций по умолчанию установлена в значение «read committed» (чтение зафиксированных данных), чтобы блокировать чтение из незафиксированных транзакций.
-
Часовой пояс должен быть установлен в соответствии с вашим местоположением.
Если вы не уверены в названии часового пояса, следующая команда выведет список всех часовых поясов, поддерживаемых PostgreSQL:
|
1 |
SELECT * FROM pg_timezone_names; |
Наконец, предоставьте новому пользователю полные права на базу данных, выделенную для Django:
|
1 |
GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <username>; |
На этом работа с PostgreSQL завершена. Выйдите из оболочки psql и выйдите из сеанса postgres .
Шаг 3. Установка Django
Мы настроили необходимый сервер баз данных для нашего приложения Django. Теперь мы установим и настроим само приложение Django. Хотя Django доступен напрямую из официального репозитория Ubuntu, мы не рекомендуем использовать этот метод. В этом случае Django будет установлен глобально для всей системы. Для большей гибкости и простоты управления мы установим Django в виртуальном окружении. Установка и настройка Django внутри виртуального окружения Python является стандартной практикой.
В Python есть модуль virtualenv который создает виртуальное окружение Python в целевом каталоге. Окружение получает собственную копию исполняемых файлов и конфигураций Python. Изменения, внесенные внутри виртуального окружения, не повлияют на остальную часть системы.
Установите virtualenv:
|
1 |
sudo apt install virtualenv |
Далее наша цель — создать выделенный каталог для развертывания виртуального окружения Python. Он послужит основой для нашего приложения Django. Для демонстрации наше приложение будет называться sample_app. Создайте новый каталог:
|
1 |
mkdir -pv <dir_name> |
Перейдите в созданный каталог и создайте виртуальное окружение:
|
1 2 |
cd sample_app/ virtualenv sample_app_env |
После этого активируйте виртуальное окружение:
|
1 |
source sample_app_env/bin/activate |
Виртуальное окружение готово к работе. Затем мы будем использовать pip для установки Django и psycopg2 (адаптера Python для PostgreSQL):
|
1 |
pip install django psycopg2 |
Наконец, мы можем создать новый проект Django с помощью инструментов Django. Это создаст подкаталог с тем же именем, содержащий весь код, и сценарий управления в текущем каталоге:
|
1 |
django-admin startproject <project_name> . |
Шаг 4. Настройка проекта Django
Проект Django содержит все базовые инструменты для работы в качестве веб-приложения. Чтобы интегрировать его с нашей базой данных, нам потребуется внести некоторые изменения в его конфигурационные файлы.
Откройте файл settings.py в текстовом редакторе:
|
1 |
nano settings.py |
Прокрутите вниз до раздела DATABASES. По умолчанию он настроен на использование SQLite:
Для наших целей измените код следующим образом:
|
1 2 3 4 5 6 7 8 9 10 |
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': '<db_name>', 'USER': '<db_user>', 'PASSWORD': '<db_user_password>', 'HOST': 'localhost', 'PORT': '', } } |
Здесь мы указываем Django использовать адаптер psycopg2 для взаимодействия с базой данных. Мы также объявляем всю необходимую информацию о базе данных, такую как имя базы данных, а также имя пользователя и пароль выделенного пользователя.
После завершения сохраните файл и закройте редактор.
Шаг 5. Миграция базы данных
Django настроен для доступа к нашей базе данных PostgreSQL. Теперь мы можем перенести структуру данных в нашу базу данных. В Django это называется миграцией.
Чтобы применить миграции базы данных, вызовите сценарий управления manage.py:
|
1 |
python manage.py makemigrations |

|
1 |
python manage.py migrate |
Затем создайте суперпользователя для нашего приложения Django:
|
1 |
python manage.py createsuperuser |
Эта учетная запись суперпользователя будет выполнять роль учетной записи администратора для нашего приложения Django.
Шаг 6. Тестирование изменений
На данный момент мы внесли несколько изменений в наше приложение Django. Время проверить, все ли работает как надо. Мы убедимся в этом, запустив приложение и перейдя в панель администратора.
Поскольку мы разрабатываем приложение Django локально, мы запустим сервер на localhost. По традиции мы запустим его на порту 8000. Если у вас настроен брандмауэр, он должен разрешать трафик на порт 8000. Узнайте больше о основах UFW здесь.
Запустите сервер Django:
|
1 |
python manage.py runserver localhost:8000 |
Перейдите по URL-адресу в браузере:
|
1 |
http://localhost:8000 |
Вы должны попасть на страницу успешной установки Django. Чтобы перейти на страницу администратора Django, откройте следующий URL-адрес:
|
1 |
http://localhost:8000/admin |
Для входа вам нужно использовать созданного нами суперпользователя:
Вуаля! Мы успешно попали в панель администратора!
После завершения работы нажмите Ctrl + C в консоли, чтобы остановить сервер Django.
Заключение
В этом руководстве мы успешно продемонстрировали создание тестового приложения Django и настройку PostgreSQL в качестве его базы данных. Хотя SQLite обычно более чем достаточно для удовлетворения потребностей во время разработки (и легкого использования в продакшене), большинство проектов получат огромную выгоду от перехода на более полнофункциональную СУБД. PostgreSQL — отличный вариант с точки зрения производительности и масштабируемости.
Django — это универсальный веб-фреймворк, который может работать со множеством технологий. Ознакомьтесь с другими облачными руководствами по использованию Django:
- Настройка Django с PostgreSQL, Nginx и Gunicorn на Ubuntu 20.04
- Создание приложения Django и Gunicorn с помощью Docker на Ubuntu
- Как защитить и масштабировать приложение Django с помощью Docker, Nginx и Let’s Encrypt
- Создание приложения Django с подключением к базе данных: руководство
Удачной работы!






















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