Как использовать MySQL или MariaDB с приложением Django в Ubuntu 14.04

Вступление

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

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

Предпосылки

Для начала вам понадобится чистый экземпляр сервера Ubuntu 14.04 с настроенным пользователем без полномочий root. Пользователь без полномочий root должен быть настроен с привилегиями + sudo +. Узнайте, как это настроить, следуя нашему https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04 руководству по настройке начального сервера].

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

Установите компоненты из репозитория Ubuntu

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

Мы рассмотрим как MySQL, так и MariaDB ниже, поэтому выберите раздел, связанный с СУБД, которую вы хотели бы использовать.

MySQL

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

sudo apt-get update
sudo apt-get install python-pip python-dev mysql-server libmysqlclient-dev

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

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

sudo mysql_install_db

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

sudo mysql_secure_installation

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

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

MariaDB

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

sudo apt-get update
sudo apt-get install python-pip python-dev mariadb-server libmariadbclient-dev libssl-dev

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

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

sudo mysql_secure_installation

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

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

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

Оставшуюся часть этого руководства можно выполнять как есть, независимо от того, установлен ли MySQL или MariaDB.

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

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 в качестве базы данных. Нам нужно изменить это так, чтобы вместо этого использовалась наша база данных MySQL / 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 в окне терминала.

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

Заключение

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

Related