Блог на Django #32: Установка PostgreSQL

360

Сейчас для проекта используется SQLite. Это необходимо для процесса разработки. Но для развертывания потребуется более мощная база данных: PostgreSQL, MySQL или Oracle. Сделаем выбор в пользу первой, чтобы получить ее функции полнотекстового поиска.

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

sudo apt-get install libpq-dev python-dev

Затем установите саму базу данных:

sudo apt-get install postgresql postgresql-contrib

Если у вас macOS или Windows, загрузите PostgreSQL с сайта https://www.postgresql.org/download/ и установите.

Также потребуется адаптер PostgreSQL под названием Psycopg2 для Python. Эта команда установит его:

pip install psycopg2==2.7.7

Создадим базу данных PostgreSQL. Откройте консоль и введите следующие команды:

su postgres 
createuser -dP blog

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

createdb -E utf8 -U blog blog

Отредактируйте файл settings.py и измените настройку DATABASES, чтобы она выглядела вот так:

DATABASES = {  
    'default': {  
        'ENGINE': 'django.db.backends.postgresql',  
        'NAME': 'blog',  
        'USER': 'blog',  
        'PASSWORD': '*****',  # пароль  
    }  
}

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

python manage.py migrate

Наконец, создайте нового суперпользователя:

python manage.py createsuperuser  

Можете запустить сервер разработки и перейти на административный сайт https://127.0.0.1:8000/admin/ с помощью новых данных.

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

Тест на знание python

Какая функция разворачивает список задом наперед?
Что выведет этот код?
Какой будет результат выполнения этого кода?
Какое значение вернет код colors[2] ?
Какой будет результат выполнения кода — print('Monty' + 'Python') ?