Как использовать MariaDB с приложением Django на CentOS 7

Вступление

Django - это гибкая среда для быстрого создания приложений на Python. По умолчанию приложения Django настроены для хранения данных в облегченном файле базы данных SQLite. Хотя это хорошо работает при некоторых нагрузках, более традиционные СУБД могут повысить производительность на производстве.

В этом руководстве мы покажем, как установить и настроить MariaDB для использования с вашими приложениями Django. Мы установим необходимое программное обеспечение, создадим учетные данные базы данных для нашего приложения, а затем запустим и настроим новый проект Django для использования этого бэкэнда.

Предпосылки

Для начала вам потребуется чистый экземпляр сервера CentOS 7 с настроенным пользователем без полномочий root. Пользователь без полномочий root должен быть настроен с привилегиями + sudo +. Узнайте, как это настроить, следуя нашему initial руководству по настройке сервера.

Когда вы будете готовы продолжить, читайте дальше.

Установите компоненты из репозиториев CentOS и EPEL

Нашим первым шагом будет установка всех необходимых нам частей из репозиториев. Мы установим + pip +, менеджер пакетов Python, чтобы установить и управлять нашими компонентами Python. Мы также установим программное обеспечение базы данных и соответствующие библиотеки, необходимые для взаимодействия с ними.

Часть необходимого программного обеспечения находится в репозитории EPEL, который содержит дополнительные пакеты. Мы можем легко включить этот репозиторий, связав:

sudo yum install epel-release

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

sudo yum install python-pip python-devel gcc mariadb-server mariadb-devel

После установки вы можете запустить и включить сервис MariaDB, набрав:

sudo systemctl start mariadb
sudo systemctl enable mariadb

Затем вы можете запустить простой скрипт безопасности, выполнив:

sudo mysql_secure_installation

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

С установкой и первоначальной настройкой базы данных мы можем перейти к созданию нашей базы данных и пользователя базы данных.

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

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

mysql -u root -p

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

Сначала мы создадим базу данных для нашего проекта Django. Каждый проект должен иметь свою собственную изолированную базу данных по соображениям безопасности. Мы будем называть нашу базу данных ++ в этом руководстве, но всегда лучше выбрать что-то более описательное. Мы установим тип по умолчанию для базы данных UTF-8, чего и ожидает Django:

CREATE DATABASE  CHARACTER SET UTF8;

Не забудьте завершить все команды в командной строке SQL точкой с запятой.

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

CREATE USER @localhost IDENTIFIED BY '';

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

GRANT ALL PRIVILEGES ON .* TO @localhost;

Сбросьте изменения, чтобы они были доступны во время текущего сеанса:

FLUSH PRIVILEGES;

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

exit

Установите Django в виртуальной среде

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

Вы можете получить пакет + virtualenv +, который позволяет создавать эти среды, набрав:

sudo pip install virtualenv

Создайте каталог для вашего проекта Django. Затем перейдите в каталог:

mkdir ~/
cd ~/

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

virtualenv

Это установит локальную копию Python и + pip + в каталог с именем ++ в каталоге вашего проекта.

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

source /bin/activate

Ваше приглашение изменится, чтобы указать, что вы сейчас работаете в виртуальной среде. Это будет выглядеть примерно так + () @: ~ / $ +.

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

pip install django mysqlclient

Теперь мы можем запустить проект Django в нашем каталоге + myproject +. Это создаст дочерний каталог с тем же именем для хранения самого кода и создаст сценарий управления в текущем каталоге. Обязательно добавьте точку в конце команды, чтобы она была правильно настроена:

django-admin.py startproject  .

Настройте параметры базы данных Django

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

Откройте основной файл настроек проекта Django, расположенный в директории дочернего проекта:

nano ~///settings.py

Внизу файла вы увидите раздел + DATABASES +, который выглядит следующим образом:

. . .

DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.sqlite3',
       'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
   }
}

. . .

В настоящее время он настроен на использование SQLite в качестве базы данных. Нам нужно изменить это так, чтобы вместо этого использовалась наша база данных MariaDB.

Во-первых, измените движок так, чтобы он указывал на бэкэнд + mysql вместо бэкенда` + _sqlite3`. Для + NAME + используйте имя вашей базы данных (++ в нашем примере). Нам также нужно добавить учетные данные для входа. Нам нужно имя пользователя, пароль и хост для подключения. Мы добавим и оставим пустым параметр порта, чтобы выбрать по умолчанию:

. . .

DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.',
       'NAME': '',
       'USER': '',
       'PASSWORD': '',
       'HOST': 'localhost',
       'PORT': '',
   }
}

. . .

Когда вы закончите, сохраните и закройте файл.

Перенос базы данных и тестирование вашего проекта

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

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

cd ~/
python manage.py makemigrations
python manage.py migrate

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

python manage.py createsuperuser

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

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

python manage.py runserver 0.0.0.0:8000

В веб-браузере перейдите на имя домена или IP-адрес вашего сервера, а затем +: 8000 +, чтобы перейти к корневой странице Django по умолчанию:

http://:8000

Вы должны увидеть страницу индекса по умолчанию:

изображение: https: //assets.digitalocean.com/articles/django_mysql_1404/django_index.png [индекс Джанго]

Добавьте + / admin + в конец URL, и вы сможете получить доступ к экрану входа в интерфейс администратора:

изображение: https: //assets.digitalocean.com/articles/django_mysql_1404/admin_login.png [Вход администратора Django]

Введите имя пользователя и пароль, которые вы только что создали, используя команду + createuperuser +. Затем вы попадете в интерфейс администратора:

изображение: https: //assets.digitalocean.com/articles/django_mysql_1404/admin_interface.png [интерфейс администратора Django]

Когда вы закончите расследование, вы можете остановить сервер разработки, нажав CTRL-C в окне терминала.

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

Заключение

В этом руководстве мы продемонстрировали, как установить и настроить MariaDB в качестве внутренней базы данных для проекта Django. В то время как SQLite легко справляется с нагрузкой во время разработки и легкого производственного использования, большинство проектов выигрывают от внедрения более полнофункциональной СУБД.

Related