Страницы

20 июня 2015 г.

Django 1.8. Устанавливаем и настраиваем MySql. Краткое руководство.

Первое что необходимо сделать, это установить MySql.
Как устанавливать и где взять дистрибутив можно  узнать тут:
Install MySql

В конце приведены правки файла py.ini. Не нужно ставить кодировку 1251 как там рекомендуют. Если верить источникам для Django это не пригодится. Вместо кодировки 1251 ставим utf8.

Вот пример:

[mysql]
default-character-set=utf8

[mysqld]
port=3306
character-set-server=utf8
default-storage-engine=MYISAM

Вот подробности, если нужно: Пример

Далее.
Нам нужно установить клиента для обращения к серверу. Есть варианты. Вот ссылка на подробности: http://djbook.ru/rel1.8/ref/databases.html#mysql-db-api-drivers
Если кратко, то

  • MySQLdb - для тех у кого python v2.
  • mysqlclient - рекомендуемый вариант, поддерживает python v3.
  • MySQL Connector/Python is a pure Python driver from Oracle that does not require the MySQL client library or any Python modules outside the standard library.... Ну тут думаю понятно.
Я ставил mysqlclient.

Установка mysqlclient.

т.е. переходим в директорию куда скачали whl-файл и вызываем pip install <file_name>. На экране видно что должно быть в окне cmd в случае успешной установки.


На текущий момент, мы:

  • Установили и настроили MySql;
  • Установили клиент, который использует Django для доступа к MySql.
Дальше необходимо создать базу данных, пользователя для базы данных, и прописать эти данные в настройки django (файл setting.py)

Создаем базу данных  и юзера.

Запускаем консоль MySql (в Windows она находится в меню пуск, называется "MySQL 5.5 Command Line Client").
При запуске вводим пароль root-а, в вводим SQL:


DROP DATABASE IF EXISTS `mydb`;
CREATE DATABASE `mydb`
    DEFAULT CHARACTER SET utf8
    DEFAULT COLLATE utf8_general_ci;

USE 'mysql';
GRANT ALL PRIVILEGES ON mydb.* TO 'mydb_user'@'localhost' IDENTIFIED BY 'your_password'

WITH GRANT OPTION;
FLUSH PRIVILEGES;
, где
mydb - имя вашей базы данных;
mydb_user - пользователь;
your_password - хмммм.... что бы это могло быть?

Теперь, когда у нас есть база данных и юзер, нужно сообщить о них django.
Открываем файл setting.py вашего проекта, и в файле видим параметр "DATABASES". Это питоновский словарь, который содержит список баз данных и параметров. Меням то что там было на следующее:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydb',                  
        'USER': 'mydb_user',             
        'PASSWORD': 'your_password',                  
        'HOST': '',                     
        'PORT': '',                      
    }
}
Листинги взяты отсюда.

Сохраняем изменения и запускаем cmd.
В cmd переходим в каталог с нажим проектом и вводим команду:
python manage.py migrate.
Эта команда создает в базе данных служебные таблицы для работы подключенных к проекту приложений.
Если все прошло хорошо, результат должен выглядеть примерно так:



На этом все! Ваш django - проект теперь имеет доступ к MySql.

Комментариев нет:

Отправить комментарий