Django 5 для начинающих

Прогресс по курсу:  9/1004

6.10 Установка базы данных PostgreSQL
3 из 4 шагов пройдено
0 из 3 баллов  получено

В следующем разделе мы добавим в блог возможности поиска. Поиск в базе данных на основе вводимых пользователем данных находит широкое применение в веб-приложениях.

Встроенный в Django ORM-преобразователь позволяет выполнять простые операции сопоставления, используя, например, фильтр contains(или его нечувствительную к регистру версию icontains).

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

from blog.models import Post

Post.objects.filter(body__contains='framework')

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

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

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

Модуль django.contrib.postgres предоставляет функциональности, предлагаемые базой данных PostgreSQL, которые не являются общими для других, поддерживаемых веб-фреймворком Django, баз данных.

О поддержке принятого в PostgreSQL полнотекстового поиска можно узнать на странице https://www.postgresql.org/docs/15/textsearch.html.

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

 

Установка базы данных PostgreSQL

В настоящее время в проекте mysite используется база данных SQLite. Поддержка полнотекстового поиска SQLite ограничена, и Django не поддерживает его прямо «из коробки».

Однако PostgreSQL подходит для полнотекстового поиска гораздо лучше, и мы можем воспользоваться модулем django.contrib.postgres, чтобы задействовать возможности полнотекстового поиска PostgreSQL.

Мы выполним миграции данных из SQLite в PostgreSQL, чтобы применить ее функциональные возможности полнотекстового поиска.

База данных SQLite приемлема для целей разработки. Однако для производственной среды вам понадобится более мощная база данных, такая как PostgreSQL, MariaDB, MySQL или Oracle.

Скачайте установщик PostgreSQL для macOS или Windows на странице https://www.postgresql.org/download/.

На той же странице вы найдете инструкции по установке PostgreSQL в различных дистрибутивах Linux. Следуйте инструкциям на веб-сайте по установке и запуску PostgreSQL.

Если вы используете macOS и решили установить PostgreSQL с помощью Postgres.app, то вам нужно будет настроить переменную $PATH, чтобы применить инструменты командной строки, как описано на странице https://postgresapp.com/documentation/cli-tools.html.

Установка PostgreSQL на Windows 11

Для установки базы данных PostgreSQL в Windows перейдем по ссылке https://www.postgresql.org/download/windows/ и нажмем нажмём на ссылку "Download the installer certified by EDB for all supported PostgreSQL versions".

Cкачаем 15 версию, в нашем случае это будет postgresql-15.5-1-windows-x64.exe и приступим к её установке:

Нажимаем Next, проверяем установлены ли все галочки:

Далее вам будет предложено выбрать каталог для установки базы данных. Оставьте каталог данных по умолчанию и нажмите Next.

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

Порт мы также оставляем по умолчанию:

Не меняем ничего и идем далее:

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

Снимаем галочку с Stack Builder, это действие является необязательным:

На этом установка нашей БД PostgreSQL на Windows закончена.

Вам также необходимо установить PostgreSQL-адаптер Psycopg 3 для Python. Выполните следующие ниже команды в командной оболочке виртуальной среды, чтобы его установить:

pip install --upgrade pip           # upgrade pip to at least 20.3
pip install "psycopg[binary]"

Посмотреть документацию на Psycopg 3 можно на официальной странице https://www.psycopg.org/psycopg3/docs/index.html.


  • Комментариев
Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Оставить комментарий

ух не очень просто на мак
смотрел сторонние видосы, много тупил, но вроде поставил

@Никита_Ильин, Советую еще установить https://dbngin.com, удобно запускать и останавливать ее и другие сервисы.


Может кто-нибудь установщиком поделиться?))

@Павел_Лепешинский, Подойдет?

https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

@Павел_Лепешинский, попробуйте отсюда скачать: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

Одна и та же ошибка
Подскажите тогда под какую операционную систему скачать и можем скинуть на Яндекс диск.
Было бы здорово) спасибо) Windows
https://disk.yandex.ru/d/PxFzzHTKUVLthQ Пробуйте.

@Илья_Перминов, Спасибо большое)

Нужно более подробное описание установки... 
Установка вроде прошла успешно, но я без понятия где найти sql shell....

Хорошо, сделаем сегодня же!

@Кирилл_Смирнов, добавили описание где скачать и как установить базу данных, и в следующем шаге чуть подробнее написали как запустить "SQL Shell"

Потом напишите, стало ли понятнее и получилось найти SQL Shell и запустить?

@Илья_Перминов, все заработало! спасибо большое!)
теперь все максимально понятно

При установке вылезло, это нормально?

@Дмитрий_Чекмасов, если есть сомнения, то лучше проверить файл на https://www.virustotal.com/.

Например для файла установки https://get.enterprisedb.com/postgresql/postgresql-15.6-1-windows-x64.exe вирустотал не находит ничего подозрительного: https://www.virustotal.com/gui/url/2706f081b88aae5b01038a5d67d405ed8359551e8d1c65e89de7cde32bc19cdb?nocache=1

Изменен Дмитрий Селезнев

Заметка по поводу установки PostgreSQL-адаптер Psycopg 3 для Python.

Было не очевидно, для чего это нужно, так что я установил, его просто открыв командную строку, НО так как мы работаем в нашем проекте с виртуальным окружением, надо было его устанавливать там же. (т.е. с (venv) в начале строки)

@Кирилл_Семенихин, Добавили уточнение.