Найти тему
Амиров Д.

Как я дружил уже существующую базу данных MySQL c Django в Windows 10

Оглавление

Введение

Как-то на днях появилась задача соединить Django-проект с уже существующей базой данных #MySQL в Windows 10. До этого #MySQL цеплял с Django только в Linux и работать приходилась чаще с PostgreSQL(В этой СТАТЬЕ описал, как подключить #PostgreSQL к #django Да и не было задач по соединению с уже существующей базой MySQL. На первый взгляд, казалось, что это будет легко! Однако возник ряд трудностей, чему и посвящена эта статья-инструкция.

Мой софт

MySQL Workbench 8.0 CE

Django 4.0.5

Python 3.9.6 (В этой СТАТЬЕ описал, как переключать версии python)

mysqlckient 2.1.1

Инструкция

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

1. Установите библиотеку mysqlclient

Делать в виртуальном окружении. Можно и без него, если Вы используете глобальный python
Делать в виртуальном окружении. Можно и без него, если Вы используете глобальный python

2. Перейдите в #MySQL Workbench и посмотрите, как называется БД, к которой Вы хотите соединиться

К примеру, я буду соединять к базе данных world
К примеру, я буду соединять к базе данных world

3. Перейдите в модуль settings.py и пропишите настройки для MySQL

Иногда можно использовать другой ENGINE - mysql.connector.django
Иногда можно использовать другой ENGINE - mysql.connector.django

DATABASES = { 'default': { 'NAME': 'user_data', 'ENGINE': 'django.db.backends.mysql', 'USER': 'mysql_user', 'PASSWORD': 'password', 'OPTIONS': { 'autocommit': True, }, } }

! Если Вы подключаете БД, которая находится на том же хосте, что и Django-проект порт указывать не обязательно

4. Выполните миграции командой

python manage.py migrate

Если выпадет ошибка попробуйте выполнить сначала 5 пункт, а потом вернитесь к 4
Если выпадет ошибка попробуйте выполнить сначала 5 пункт, а потом вернитесь к 4

5. Чтобы соединиться с существующей БД MySQL нужно получить модели таблиц этой БД. Это можно сделать следующей командой

-6

python manage.py inspectdb > models.py

После этого в директории проекта появится файл models.py, заполненный по правилам Django. Этот файл нужно положить в директорию приложения

-7
Сгенерированные модели внутри сформированного файла models.py
Сгенерированные модели внутри сформированного файла models.py

6. Создайте суперпользователя для того, чтобы смотреть данные через административный сайт

python manage.py createsuperuser

-9

7. В модуле admin.py необходимо зарегистрировать те модели, которые хотите видеть на административном сайте

-10

Результат:

-11

Таким образом, можно соединить MySQL и Django. Иногда это может вызвать трудности при использовании специальных версий библиотек или интерпретатора, что может отнять у Вас много времени на Интернет-серфинг в поисках ответа, а почему так) Здесь я постарался изложить рецепт быстрого приготовления блюда из Django и MySQL.

-12

Обязательно пишите, комментарии, если удалось соединиться или нет, чтобы не получилось, так как на пикче! На все отвечу:)

Спасибо, что дочитали до конца. Вы меня очень поддержите, если поставите "Лайк", оставите комментарий или ПОДПИШИТЕСЬ на мой канал :)

#django

#mysql

#База_данных

#python

#mysqlclient