Как настроить postgresql для django

Содержание
  1. Установка и подключение PostgreSQL к Django
  2. 1. Добавление PPA
  3. 2. Обновляем пакеты
  4. 3. Устанавливаем PostgreSQL
  5. 4. Открываем консоль PostgreSQL
  6. 5. Задаем пароль для администратора БД
  7. 6. Создадим суперпользователя
  8. 7. Создаем базу данных для нашего проекта
  9. 8. Выходим из консоли PostgreSQL команой:
  10. 9. Активируем виртуальное окружение (если оно не активировано)
  11. 10. В виртуальное окружение проекта устанавливаем бэкэнд для PostgreSQL
  12. 11. Отредактируем файл настроек Django
  13. 12. Перезапускаем Gunicorn
  14. 13. Выполним миграцию базы данных
  15. 14. Создадим суперпользователя Django
  16. 15. Перезапускаем Gunicorn (повторяем пункт 12 этой статьи)
  17. 16. Авторизуемся в админке
  18. Поднимаем Django стек на MS Windows
  19. Python
  20. Устанавливаем mod_wsgi
  21. Apache
  22. PostgreSQL
  23. Устанавливаем web приложение
  24. Django+PostgreSQL за 8 шагов
  25. Как использовать PostgreSQL c приложением Django на Ubuntu 16.04
  26. Введение
  27. Требования
  28. Устанавливаем компоненты
  29. Создаем базу данных и пользователя
  30. Устанавливаем Django
  31. Настраиваем базу данных
  32. Перенесим базу данных и тестируем проект
  33. Заключение

Установка и подключение PostgreSQL к Django

Приветствую! В прошлой статье мы выполнили деплой приложения Django на сервере с операционной системой Ubuntu 20.04. В этой статье мы продолжим эту инструкцию, а именно установим и подключим мощную и функциональную базу данных PostgreSQL к нашему Django приложению.

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

1. Добавление PPA

PostgreSQL — популярный сервер баз данных и он имеется в официальных репозиториях. Но мы хотим использовать самую последнюю версию программы. Для этого нужно добавить в систему PPA (Personal Package Archive) с помощью команд:

2. Обновляем пакеты

3. Устанавливаем PostgreSQL

На момент написания статьи последней актуальной версий являлась PostgreSQL-12. Проверить последнюю версию можно на официальном сайте БД. В случае обновления можно просто заменить версию в команде, например, sudo apt install postgresql-13.

Читайте также:  Как отремонтировать зимний сапог

4. Открываем консоль PostgreSQL

5. Задаем пароль для администратора БД

6. Создадим суперпользователя

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

Здесь hostgeek_db — это имя пользователя, а testpassword18 — пароль. Указывайте свои индивидуальные значения.

7. Создаем базу данных для нашего проекта

Здесь first_db — это название базы данных, а hostgeek_db — имя пользователя, который был создан в предыдущем пункте.

8. Выходим из консоли PostgreSQL команой:

9. Активируем виртуальное окружение (если оно не активировано)

Подробно об этом было расписано в прошлой статье по деплою Django. Активируется виртуальное окружение командой:

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

10. В виртуальное окружение проекта устанавливаем бэкэнд для PostgreSQL

11. Отредактируем файл настроек Django

Полностью удаляем раздел DATABASES = <. >и заменяем на следующий код:

12. Перезапускаем Gunicorn

Для активизации этих изменений нужно перезапустить Gunicorn. Для этого вводим команду:

Жмем F4 (Filter) и вводим слово gunicorn. Так мы из общей массы отсортируем только процессы Gunicorn. Жмем на клавиатуре стрелку вниз и «киляем» все процессы поочередным нажатием клавиш F9 — 1 (SIGHUP) — Enter. Как видно, после «убийства» процессов они тут же запускаются автоматически, значит все работает правильно

Выходим из htop нажатием клавиши F10.

13. Выполним миграцию базы данных

Перейдем в папку

/myapps/parser/siteparser (папка, в которой лежит файл manage.py):

Выполним команду миграции БД:

14. Создадим суперпользователя Django

Под этим пользователем мы будем авторизовываться в админ-панели Django.

15. Перезапускаем Gunicorn (повторяем пункт 12 этой статьи)

16. Авторизуемся в админке

Теперь можем зайти в админку сайта по адресу: http://45.82.178.214/admin/ и авторизоваться в ней под данными созданного суперпользователя. Но можно заметить, что админка не имеет подключенных стилей:

Для подключения стилей откроем конфигурационный файл Nginx:

Добавим в него следующий код и сохраним файл:

После этого админка будет отображаться корректно:

На этом подключение базы данных PostgreSQL к фреймворку Django завершено. В следующей статье разберем настройку Memcached.

Если у вас возникли какие-либо вопросы по этой статье, то задавайте их в комментариях, мы обязательно ответим. Спасибо за внимание!

Источник

Поднимаем Django стек на MS Windows

В данной статье будет представлена подробная инструкция по установке и настройке программ Apache, Python и PostgreSQL для обеспечения работы Django проекта в ОС MS Windows. Django уже включает в себя упрощенный сервер разработки для локального тестирования кода, но для задач, связанных с продакшен, требуется более безопасный и мощный веб-сервер. Мы настроим mod_wsgi для взаимодействия с нашим проектом и настроим Apache в качестве шлюза в внешний мир.

Стоит отметить, что установка и настройка будет производиться в ОС MS Windows 10 с 32 разрядностью. Также 32 битная реакция будет универсальна и будет работать на 64 битной архитектуре. Если вам нужна 64 битная установка повторите те же действия для 64 битных дистрибутивов программ, последовательность действий будет идентична.

В качестве Django проекта будем использовать программу Severcart. Она предназначена для управления перемещениями картриджей, учёта печатающего оборудования и договоров поставки и обслуживания. Установка всех программ и модулей будет производиться в каталог C:\severcart. Местоположение не принципиально.

Python

Первым шагом является загрузка и установка Python с веб-сайта Python. Выбираем Windows в качестве операционной системы и 32-битную версию. На момент написания статьи текущей версией является 3.9.0rc2.

Загрузив файл установки, щелкните правой кнопкой мыши файл установки и выберите «Запуск от имени администратора». Вы должны увидеть экран ниже

Устанавливаем галочки напротив чекбоксов «Install launcher for add user (recomended)» и «Add Python 3.9 to PATH» и нажимаем на «Customize installation».

Устанавливаем галочки на против «pip», «py launcher», «for all users (requires elevation)» и нажимаем «Next».

Выбираем все поля ввода как на картинке выше и нажимаем на «Install».

Чтобы убедиться, что установка прошла успешно, откройте cmd и введите python. Если установка прошла успешно, вы должны увидеть приглашение, подобный приведенному ниже

Устанавливаем mod_wsgi

gohlke/pythonlibs. Модуль выполняет функции посредника межу сервером Apache и Django проектом. Самый свежий пакет будет с именем mod_wsgi-4.7.1-cp39-cp39-win32.whl. Обратите внимание, что пакет скомпилирован для 32 битной Windows CPython версии 3.9. Также стоит отметить, что очевидная установка модуля pip install mod_wsgi скорее всего завершится ошибкой, т.к. в процессе установки потребуется компилятор Visual Studio C++. Ставить компилятор целиком ради одного Python пакета в Windows считаем нецелесообразным.

Устанавливаем модуль с помощью стандартного пакетного менеджера pip в cmd или powershell:

Apache

Скачиваем дистрибутив с сайта https://www.apachelounge.com/download/.
Самая свежая версия Web-сервера является Apache 2.4.46 win32 VS16. Также для работы программы понадобиться заранее установленный пакет «Visual C++ Redistributable for Visual Studio 2019 x86».

Распаковываем дистрибутив Apache в каталог C:\severcart\Apache24, далее меняем строку с номером 37 на свою

Проверяем работу Apache, выполнив в командной строке

В результате должны увидеть в браузере по адресу 127.0.0.1 строку «It works!».

Устанавливаем службу Apache, для этого выполним в командной строке от имени Администратора инструкцию:

Далее подключим модуль mod_wsgi к Apache. Для этого выполним в командной строке инструкцию

В результате в стандартный вывод будет распечатаны строки:

Создаем файл C:\severcart\Apache24\conf\extra\httpd-wsgi.conf и копипастим туда распечатанные строки выше.

Подключаем новую конфигурацию к основному файлу httpd.conf
Include conf/extra/httpd-wsgi.conf

Сохраняем изменения, перезагружаем службы Apache

PostgreSQL

Устанавливаем PostgreSQL взятый с сайта https://postgrespro.ru/windows. Текущая версия программного продукта – 12. Преимущества Российского дистрибутива от канонического представлены на том же сайте.

Действия по установке представлены выше и комментариях не нуждаются. Установка крайне проста.

Создаем БД в postgres, где потом будут храниться структуры данных Django проекта

БД создана. Теперь разворачиваем Django проект.

Устанавливаем web приложение

Для этого скачиваем zip архив с сайта https://www.severcart.ru/downloads/ и распаковываем в каталог C:\severcart\app\

Вносим изменения в главный конфигурационный файл C:\severcart\app\conf\settings_prod.py для указания реквизитов подключения к БД

Python словарь DATABASES содержит в себе реквизиты подключения к БД. Подробности по настройке читайте здесь https://docs.djangoproject.com/en/3.1/ref/databases/#connecting-to-the-database

Устанавливаем Python пакеты значимостей для работы приложений внутри Django проекта

В процессе работы скрипта будет произведена инициализация БД таблицами, констрейтами, индексами и прочим, а будет предложено создать пользователя, от имени которого будет производиться работа в программе.

Подключаем Django приложение к серверу Apache для этого дополняем конфигурационный файл
httpd-wsgi.conf следующим текстом

Перезагружаем службу Apache и проверяем работу приложения

На этом все. Спасибо что дочитали.

В следующей статье будем создавать установочный самораспаковывающийся архив в InnoSetup для быстрого развертывания Django проекта на компьютере заказчика. Для тех кто хочет повторить все действия на Яндекс.Диск загружены все используемые дистрибутивы.

Источник

Django+PostgreSQL за 8 шагов

На ночь глядя решился написать гайд по установке СУБД PostgreSQL для использования вместе с Django.

Хотя в мануалах Django и рекомендуется использовать PostgreSQL, но среди разработчиков бытует мнение, что MySQL гораздо проще для начинающего разработчика.

Я с этим мнением не согласен. И попытаюсь Вам это доказать.

За 8 простых шагов я покажу как установить PostgreSQL в Ubuntu 14.04 LTS и настроить Django для работы с ним.

  1. Ставим сам сервер PostgreSQL и библиотеку разработчика (она пригодится нам при установке бэкэнда)

Если вы решите использовать более свежую Ubuntu 16.04 LTS, то PostgreSQL там будет уже версии 9.5.

Открываем консоль PostgreSQL

Задаем пароль администратора БД

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

Временной пояс можно указать свой, согласно тому, который вы прописываете в settings.py проекта. А про страшное определение уровень изоляции транзакций, если оно вам не знакомо, лучше все таки прочитать из учебника по SQL — пригодится.

Создаем базу для нашего проекта

Выходим из консоли

В окружении проекта устанавливаем бэкэнд для PostgreSQL

Последний наш шаг — настроить раздел DATABASES конфигурационного файла проекта settings.py

Дальше все как обычно:

  • делаем миграцию ./manage.py migrate ,
  • создаем суперпользователя ./manage.py createsuperuser
  • и запускаем сервер ./manage runserver .

Если у вас настроен SSH на сервере, то можно еще научить pgAdmin с локальной машины управлять удаленным сервером PostgreSQL. Для этого мы можем создать ssh-тунель командой ssh -fNq -L 5555:localhost:5432 user@domain.com .

Теперь можно из локального pgAdmin соединяться с удаленной БД по адресу localhost:5555 .

Источник

Как использовать PostgreSQL c приложением Django на Ubuntu 16.04

Введение

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

Из данного руководства вы узнаете, как установить и настроить СУБД PostgreSQL для работы с приложением на Django. Здесь будут описаны все этапы: от установки необходимого программного обеспечения и создания учетных данных БД до запуска и настройки нового Django-приложения.

Требования

Перед тем, как приступить к установке, убедитесь, что у вас есть новый сервер, на котором установлена операционная система (ОС) Ubuntu 16.04, и создан новый пользователь (не суперпользователь), который может выполнять команды sudo.

Теперь авторизуйтесь в качестве этого пользователя и проступите к выполнению следующих инструкций.

Устанавливаем компоненты

Первым делом вы должны установить все необходимые компоненты из репозитория. В частности, установите pip (менеджер пакетов Python) для того, чтобы дальше вы могли установить и работать с компонентами Python. Также вам будет нужно установить программное обеспечение базы данных и библиотеки, необходимые для работы с ней.

Версии Python 2 и Python 3 имеют немного разные пакеты, поэтому ниже выберите команды, соответствующие той версии Python, которая используется в вашем проекте.

Если вы используете Python 2, введите:

А если вы используете Python 3, выполните следующие команды:

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

Создаем базу данных и пользователя

По умолчанию для локальных соединений PostgreSQL использует схему авторизации, которая называется “peer authentication” (можно перевести как «одноранговая авторизация»). Подобная схема позволяет провести авторизацию (без дальнейшей аутентификации) в случае, если имя пользователя ОС совпадает с именем действующего пользователя PostgreSQL.

Во время установки PostgreSQL создается пользователь ОС с именем postgres, которое соответствует имени администратора PostgreSQL. При помощи этого пользователя вы сможете выполнять административные задачи. Для того, чтобы авторизоваться под ним, вам необходимо выполнить команду sudo с ключом -u.

Начните сессию в PostgreSQL, используя команду:

Первым делом вам нужно создать базу данных для вашего проекта на Django. Из соображений безопасности будет лучше, если каждый проект будет иметь свою собственную изолированную базу данных. Название базы данных должно быть описательным и вам понятным, но в данном руководстве в качестве примера будет использоваться база под названием myproject:

Примечание.
Все SQL-команды обязательно должны заканчиваться точкой с запятой.

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

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

Установите UTF-8 в качестве кодировки по умолчанию (это необходимо для Django). Уровень изолированности транзакций нужно по умолчанию установить как “read committed” (чтение фиксированных данных) – этот уровень обеспечивает защиту от чернового чтения. Не забудьте про временную зону: изначально проекты на Django имеют установку UTC. Чтобы выполнить все изменения, нужно ввести следующие команды:

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

Теперь выйдите из командной строки SQL, возвратившись к postgres сессии пользователя:

Устанавливаем Django

После создания и настройки базы данных вам нужно перейти к установке Django. Для большей гибкости установите Django и его зависимости в виртуальном окружении Python. Вы сможете легко это сделать при помощи пакета virtualenv.

Если вы используете Python 2, тогда используйте эту команду:

Если используете Python 3, то вам нужно ввести следующую строку:

Создайте новую директорию, в которой будет храниться ваш проект на Django, и перейдите в нее:

Затем создайте виртуальное окружение, где будут храниться требования (“requirements”) Python, касающиеся вашего проекта на Django:

После этого в директории myprojectenv (внутри директории вашего проекта) будут установлены локальная копия Python и система управления пакетами pip.

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

По изменившемуся виду командной строки вы сможете понять, что теперь вы работаете в виртуальном окружении. Она будет выглядеть примерно так (myprojectenv)user@host:

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

Примечание.
Вне зависимости от того, какую версию Python вы используете, когда виртуальное окружение включено, вам нужно использовать команду pip (а не pip3).

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

Настраиваем базу данных

Теперь, когда у вас есть свой проект, вам необходимо настроить его так, чтобы в нем использовалась та база данных, которую вы создали ранее.

Для этого нужно открыть файл с основными настройками проекта на Django, который находится в дочерней директории проекта:

Ближе к концу файла вы увидите секцию DATABASES, которая выглядит примерно так:

Согласно настройкам, на данный момент в проекте используется база данных SQLite; вам нужно изменить настройки так, чтобы использовалась база данных PostgreSQL.

Во-первых, измените бэкэнд базы данных (графа “engine”) так, чтобы вместо sqlite3 использовался postgresql_psycopg2. Далее в качестве используемой базы данных (графа “NAME”) пропишите название своей базы данных (в данном случае myproject). Также необходимо добавить учетные данные для входа в систему: понадобится имя пользователя, пароль и хост для подключения (графы “USER”, “PASSWORD”, “HOST”). Добавьте и графу, касающуюся порта (“PORT”), однако прописывать в ней ничего не нужно – в этом случае это будет обозначать настройку по умолчанию. В итоге блок с DATABASES должен выглядеть так:

После всех необходимых изменений сохраните и закройте файл.

Перенесим базу данных и тестируем проект

Настройка проекта на Django завершена, и теперь вам нужно перенести данные в созданную базу данных и протестировать проект на сервере.

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

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

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

Если вы используете UFW Firewall, то крайне важно перед тестированием проекта открыть необходимый порт:

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

Для того, чтобы попасть на приветственную страницу Django, введите в браузере адрес вашего сайта либо ip-адрес, дописав в конце :8000 (номер порта).

http:// доменное_имя_или_IP-адрес :8000

Вам должна высветиться начальная страница Django:

Добавьте в конце адресной строки /admin, и вы попадете на страницу входа в административную панель:

Введите имя пользователя и пароль, которые вы указали при использовании команды createsuperuser, и вы попадете в административную панель:

После того, как вы выполнили все необходимые проверки, остановите сервер разработки, нажав Ctrl-C в консоли.

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

Заключение

Из этого руководства вы узнали, как установить и настроить PostgreSQL в качестве базы данных для проекта на Django. Безусловно, для небольших проектов подойдет и изначально используемая база данных SQLite, однако большинство проектов на Django только выиграет при переходе на PostgreSQL.

Источник

Оцените статью