Введение
Django – это гибкий фреймворк, который используется для быстрого создания приложений на языке Python. По умолчанию приложения настроены сохранять свои данные в легковесные файлы базы данных SQLite. Однако в дальнейшем, используя более традиционные базы данных, вы можете улучшить производительность.
Из данного руководства вы узнаете, как установить и настроить MariaDB для использования с вашим приложением, созданным при помощи Django. В нем мы установим необходимое программное обеспечение, создадим учетные данные базы данных, а затем запустим и настроим новый проект Django для работы с MariaDB.
Требования
Для начала у вас должен быть сервер с установленным базовым CentOS 7, также вам понадобится пользователь, который не является суперпользователем, но способен выполнять команды sudo.
Установка компонентов из 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. В целях безопасности каждый отдельный проект должен иметь индивидуальную, свою собственную базу данных. В этом руководстве база данных будет носить имя myproject,однако на практике лучше выбрать какое-нибудь более понятное название. Установим у базы кодировку данных UTF-8 (то, что подходит Django):
CREATE DATABASE myproject CHARACTER SET UTF8;
Важно.
Помните, что все команды SQL должны заканчиваться точкой с запятой.
В следующем шаге нам необходимо создать пользователя базы данных, которого мы будем использовать для того, чтобы подключаться и работать с базой данных. Обязательно установите надежный пароль!
CREATE USER myprojectuser@localhost IDENTIFIED BY 'password';
Теперь нам необходимо просто дать этому пользователю доступ к базе данных, которую мы создали:
GRANT ALL PRIVILEGES ON myproject.* TO myprojectuser@localhost;
Используйте следующую команду для того, чтобы перезагрузить таблицы назначения привилегий и увидеть вступившие в силу изменения:
FLUSH PRIVILEGES;
Выйдите из командной строки SQL для того, чтобы вернуться в свою обычную сессию:
exit
Установка Django через виртуальное окружение (Virtual Environment)
Теперь, когда наша база данных настроена, мы можем установить Django. Для большей гибкости мы установим Django и все его зависимости, используя виртуальное окружение Python.
Для того, чтобы получить пакет virtualenv, который позволит создать виртуальное окружение, необходимо ввести:
sudo pip install virtualenv
Создайте директорию, в которой будет находиться ваш проект Django, и затем переместитесь в эту директорию:
mkdir ~/myproject cd ~/myproject
Для того, чтобы создать виртуальное окружение, в котором будут храниться вся необходимая информация Python, касающаяся проекта Django, введите команду:
virtualenv myprojectenv
Благодаря этой команде локальная копия Python и система управления пакетами pip будут установлены в директорию под названием myprojectenv, которая будет находиться внутри директории вашего проекта.
Перед установкой приложения в виртуальное окружение нам необходимо его активировать. Для этого введите в командную строку:
source myprojectenv/bin/activate
Командная строка изменится, а значит, теперь вы работаете внутри виртуального окружения. Выглядеть это будет примерно следующим образом:
(myprojectenv)user@host:~/myproject$.
После запуска виртуального окружения мы можем перейти к установке Django, используя pip. Еще мы установим пакет mysqlclient, который позволит нам использовать базу данных, которую мы настроили:
pip install django mysqlclient
Наконец, мы можем приступить к созданию собственного проекта Django внутри директории myproject. В результате будет создана дочерняя директория под таким же названием, в которой будет храниться весь код; внутри данной директории также появится административный скрипт. Обязательно поставьте точку в конце следующей команды для того, чтобы она была выполнена корректно:
django-admin.py startproject myproject .
Настройка базы данных Django
После того, как мы создали проект, нам необходимо настроить его так, чтобы он использовал созданную нами базу данных.
Откройте основной файл, содержащий настройки проекта Django; он находится в дочерней директории:
nano ~/myproject/myproject/settings.py
Ближе к концу файла вы увидите секцию DATABASES, которая выглядит вот так:
. . . DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } . . .
На данный момент она настроена использовать в качестве базы данных SQLite. Нам необходимо заменить это так, чтобы вместо нее использовалась MariaDB.
Первым делом мы изменим движок базы, чтобы он обращался к серверу mysql вместо сервера sqlite3. В строчке NAME напишите имя вашей базы данных (к примеру, myproject). Также нам необходимо добавить учетные данные для авторизации, а именно имя пользователя, пароль и хост, к которому необходимо подсоединяться. Поле настройки порта оставьте пустым для того, чтобы был выбран порт по умолчанию:
. . . DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'myproject', 'USER': 'myprojectuser', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '', } } . . .
После этого сохраните и закройте файл.
Перенос базы данных и тестирование проекта
Теперь, когда вы настроили Django, мы можем приступить к перемещению структур данных в нашу базу данных и к тестированию нашего сервера.
Для начала нам нужно создать миграции и применить их к нашей базе данных. Так как у нас еще нет каких-либо фактических данных, следующая команда просто установит начальную структуру базы данных:
cd ~/myproject python manage.py makemigrations python manage.py migrate
После этого мы можем создать аккаунт с административными полями при помощи команды:
python manage.py createsuperuser
Вам нужно будет выбрать имя пользователя, электронный адрес, а также написать и подтвердить пароль для этого аккаунта.
После того, как вы создали административный аккаунт, следует проверить, правильно ли работает база данных. Для этого запустите сервер, который принимает только локальные соединения с вашего компьютера:
python manage.py runserver 0.0.0.0:8000
В своем браузере введите доменное имя сервера либо IP-адрес с окончанием :8000 для того, чтобы увидеть корневую страницу Django по умолчанию:
http://домен_сервера_или_IP:8000
Вы должны увидеть следующую страницу:
Добавьте /admin в конце URL, и вам должно высветиться окно авторизации администратора:
Введите имя пользователя и пароль, которые вы недавно создали, используя команду createsuperuser. Вы увидите перед собой панель администрирования:
После того как вы закончите исследовать административную часть, вы можете остановить сервер, нажав CTRL-C в окне терминала.
Войдя в панель администратора, мы убедились, что наша база данных содержит информацию о созданном пользователе, и ее можно при необходимости получить.
Заключение
В этом руководстве мы показали, как установить и настроить MariaDB в качестве базы данных сервера для проекта Django. Несмотря на то, что SQLite легко выдерживает нагрузку во время разработки и начального запуска проекта, большинство проектов выиграет, если вы установите базу данных с большим количеством функций.
Комментарии