![Django База [2023]: Установка PostgreSQL в Django 💾 #33](/_next/image?url=https%3A%2F%2Fproghunter.ru%2Fmedia%2Fimages%2Fthumbnails%2F2023%2F02%2F20%2Fimage-b36d50bf24.png&w=3840&q=75)
Django Django База [2023]: Установка PostgreSQL в Django 💾 #33
В этой статье мы покажем, как установить и настроить PostgreSQL для использования в Django проектах. Мы рассмотрим процесс установки PostgreSQL, настройку базы данных в Django, а также подключение к базе данных PostgreSQL с помощью Python библиотеки psycopg2.
Установка postgreSQL на ПК
Если мы хотим установить на локальную машину PostgreSQL, то переходим на официальный сайт и скачиваем Postgres.
![Django База [2023]: Установка PostgreSQL в Django 💾 #33](/_next/image?url=https%3A%2F%2Fproghunter.ru%2Fmedia%2Fimages%2Fuploads%2F2023%2F02%2F20%2Fac6ae2050b-uploaded-image.jpg&w=3840&q=75)
![Django База [2023]: Установка PostgreSQL в Django 💾 #33](/_next/image?url=https%3A%2F%2Fproghunter.ru%2Fmedia%2Fimages%2Fuploads%2F2023%2F02%2F20%2F682b204740-uploaded-image.jpg&w=3840&q=75)
После скачивания, начинаем установку. Все оставляем по умолчанию.
Пароль при требовании придумайте любой, я на локальной машине использую: root
![Django База [2023]: Установка PostgreSQL в Django 💾 #33](/_next/image?url=https%3A%2F%2Fproghunter.ru%2Fmedia%2Fimages%2Fuploads%2F2023%2F02%2F20%2F6ae9ab45b5-uploaded-image.jpg&w=3840&q=75)
Установка PostgreSQL в Django
Далее в терминале нам необходимо установить драйвер для работы с СУБД: pip install psycopg2
Результат установки:
(venv) PS C:\Users\Razilator\Desktop\Base\backend> pip install psycopg2
Collecting psycopg2
Using cached psycopg2-2.9.5-cp311-cp311-win_amd64.whl (1.2 MB)
Installing collected packages: psycopg2
Successfully installed psycopg2-2.9.5
[notice] A new release of pip available: 22.3 -> 23.0
[notice] To update, run: python.exe -m pip install --upgrade pip
(venv) PS C:\Users\Razilator\Desktop\Base\backend>
Запускаем pgAdmin
В меню пуск введите в поиске pgAdmin, подключитесь по созданному паролю при установке.
![Django База [2023]: Установка PostgreSQL в Django 💾 #33](/_next/image?url=https%3A%2F%2Fproghunter.ru%2Fmedia%2Fimages%2Fuploads%2F2023%2F02%2F20%2F0e9175daa5-uploaded-image.jpg&w=3840&q=75)
Если пароль не работает, можете восстановить его Reset Master Password.
![Django База [2023]: Установка PostgreSQL в Django 💾 #33](/_next/image?url=https%3A%2F%2Fproghunter.ru%2Fmedia%2Fimages%2Fuploads%2F2023%2F02%2F20%2Fdbedde6c8f-uploaded-image.jpg&w=3840&q=75)
![Django База [2023]: Установка PostgreSQL в Django 💾 #33](/_next/image?url=https%3A%2F%2Fproghunter.ru%2Fmedia%2Fimages%2Fuploads%2F2023%2F02%2F20%2Fa63f8ac95e-uploaded-image.jpg&w=3840&q=75)
Теперь нам необходимо создать базу данных для нашего сайта (нажать левой кнопкой мыши на Базы Данных и создать базу данных):
![Django База [2023]: Установка PostgreSQL в Django 💾 #33](/_next/image?url=https%3A%2F%2Fproghunter.ru%2Fmedia%2Fimages%2Fuploads%2F2023%2F02%2F20%2F7333097c22-uploaded-image.jpg&w=3840&q=75)
![Django База [2023]: Установка PostgreSQL в Django 💾 #33](/_next/image?url=https%3A%2F%2Fproghunter.ru%2Fmedia%2Fimages%2Fuploads%2F2023%2F02%2F20%2Fa6696f9c95-uploaded-image.jpg&w=3840&q=75)
Настройка Django для работы с PostgreSQL
Далее нам необходимо изменить конфигурационный файл settings.py, в нём мы добавим новые настройки для базы данных вместо старых:
Найдите эти настройки:
# Database
# https://docs.djangoproject.com/en/4.1/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
И вместо них добавьте следующие:
# Database
# https://docs.djangoproject.com/en/4.1/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': '<dbname>',
'USER': 'postgres',
'PASSWORD': '<password>',
'HOST': 'localhost',
'PORT': 5432,
}
}
Таким образом мы настроим Django на работу с Postres.
К сожалению наши пользователи и статьи удалятся, поэтому делать лучше Postgres заранее, сразу после создания проекта. Но мы же делаем это как dev версию, поэтому нам не страшно что-то тестировать и удалять. Заодно я почищу папки media, удалю sqlite файл. Примечание: учтите это при деплое, Postgres ставим сразу! Но до него ещё доберемся.
Далее после установки проводим миграции и создаем суперпользователя:
(venv) PS C:\Users\Razilator\Desktop\Base\backend> py manage.py makemigrations
No changes detected
(venv) PS C:\Users\Razilator\Desktop\Base\backend> py manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, blog, contenttypes, sessions, sites, system, taggit
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying taggit.0001_initial... OK
Applying taggit.0002_auto_20150616_2121... OK
Applying taggit.0003_taggeditem_add_unique_index... OK
Applying taggit.0004_alter_taggeditem_content_type_alter_taggeditem_tag... OK
Applying taggit.0005_auto_20220424_2025... OK
Applying blog.0001_initial... OK
Applying blog.0002_alter_article_slug_alter_article_thumbnail... OK
Applying blog.0003_alter_article_time_create_comment_and_more... OK
Applying blog.0004_article_tags... OK
Applying sessions.0001_initial... OK
Applying sites.0001_initial... OK
Applying sites.0002_alter_domain_unique... OK
Applying system.0001_initial... OK
Applying system.0002_alter_profile_avatar... OK
Applying system.0003_alter_profile_avatar_alter_profile_bio_and_more... OK
Applying system.0004_feedback... OK
(venv) PS C:\Users\Razilator\Desktop\Base\backend> py manage.py createsuperuser
Авторизуюсь с созданного пользователю и добавлю пару статей для будущих уроков.
![Django База [2023]: Установка PostgreSQL в Django 💾 #33](/_next/image?url=https%3A%2F%2Fproghunter.ru%2Fmedia%2Fimages%2Fuploads%2F2023%2F02%2F20%2F15fcdea2a0-uploaded-image.jpg&w=3840&q=75)
Также взглянем на наши таблицы в базе данных:
![Django База [2023]: Установка PostgreSQL в Django 💾 #33](/_next/image?url=https%3A%2F%2Fproghunter.ru%2Fmedia%2Fimages%2Fuploads%2F2023%2F02%2F20%2Fcafc4ac8e2-uploaded-image.jpg&w=3840&q=75)