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

75

Сейчас для проекта используется 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  

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

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

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

Какой код выведет строку — "C:\Common\testString.doc" ?
Какой будет результат выполнения кода — print(abc) ?
Какой будет результат выполнения этого кода?
Какой будет результат выполнения кода в python 3 — print(3/5) ?
Что делает функция re.match()?