Введение
Как-то на днях появилась задача соединить 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
2. Перейдите в #MySQL Workbench и посмотрите, как называется БД, к которой Вы хотите соединиться
3. Перейдите в модуль settings.py и пропишите настройки для MySQL
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. Чтобы соединиться с существующей БД MySQL нужно получить модели таблиц этой БД. Это можно сделать следующей командой
python manage.py inspectdb > models.py
После этого в директории проекта появится файл models.py, заполненный по правилам Django. Этот файл нужно положить в директорию приложения
6. Создайте суперпользователя для того, чтобы смотреть данные через административный сайт
python manage.py createsuperuser
7. В модуле admin.py необходимо зарегистрировать те модели, которые хотите видеть на административном сайте
Результат:
Таким образом, можно соединить MySQL и Django. Иногда это может вызвать трудности при использовании специальных версий библиотек или интерпретатора, что может отнять у Вас много времени на Интернет-серфинг в поисках ответа, а почему так) Здесь я постарался изложить рецепт быстрого приготовления блюда из Django и MySQL.
Обязательно пишите, комментарии, если удалось соединиться или нет, чтобы не получилось, так как на пикче! На все отвечу:)
Спасибо, что дочитали до конца. Вы меня очень поддержите, если поставите "Лайк", оставите комментарий или ПОДПИШИТЕСЬ на мой канал :)
#django
#mysql
#База_данных
#python
#mysqlclient