Как подключить Python3 к MySQL с помощью PyMySQL

Если вы хотите подключить Python3 к MySQL, вам необходимо установить пакет pymysql. В программировании, если вы собираетесь подключить любой язык к какому-либо серверу базы данных, вам потребуется определенный драйвер, клиент или модули. Драйвер или модуль легко подключает язык к базе данных.

В Python подключение к любому серверу базы данных иногда создает проблемы, поскольку Python имеет две основные версии: Python 2 и Python 3. Вам необходимо установить драйвер базы данных, совместимый с используемой версией.

Теперь давайте проверим мою версию Python с помощью следующей команды.

Как проверить версию Python на Mac

Введите следующую команду в терминале.

Выход:

Python 3.8 — последняя версия на данный момент.

Давайте проверим версию pip.

Выход:

Моя версия pip3 — 20, это последняя версия на данный момент.

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

Это означает, что мне нужно установить драйвер MySQL для Python3, и этот драйвер — pymysql.

Как подключить Python3 к MySQL с модулем PyMySQL

Стандартом Python для интерфейсов баз данных является Python DB-API. Большинство интерфейсов баз данных Python соответствуют этому стандарту. Вы можете выбрать подходящую базу данных для своего приложения. Python Database API поддерживает широкий спектр серверов баз данных, например следующие.

  1. Microsoft SQL Server 2000
  2. MySQL
  3. Sybase
  4. SQLite
  5. Interbase
  6. Oracle
  7. GadFly
  8. mSQL
  9. PostgreSQL

Вы должны загрузить отдельный модуль DB API для каждой базы данных, к которой вам нужен доступ. Например, если вам нужно получить доступ к базе данных Oracle, а также к базе данных MySQL, вы должны загрузить модули базы данных Oracle и MySQL в Python.

DB API обеспечивает минимальный стандарт для работы с базами данных с использованием структур и синтаксиса Python, где это возможно. Этот API включает в себя следующее:

  1. Импорт модуля API.
  2. Получение соединения с базой данных.
  3. Выдача операторов SQL и хранимых процедур.
  4. Закрытие соединения.

Python имеет встроенную поддержку SQLite.

В этом разделе мы изучим все концепции использования MySQL. Модуль MySQLdb, популярный интерфейс для MySQL, несовместим с Python 3. Вместо этого мы будем использовать модуль PyMySQL.

Подключение Python3 к MySQL с помощью PyMySQL

Что такое PyMySQL

PyMySQL — это интерфейс для подключения к серверу базы данных MySQL из Python. Он реализует Python Database API версии 2.0 и содержит клиентскую библиотеку MySQL на чистом языке Python. Цель PyMySQL — заменить MySQLdb.

Шаги для подключения Python к MySQL

Теперь давайте начнем пошаговую процедуру подключения Python к базе данных MySQL. Наш первый шаг — установить модуль PyMySQL в нашу систему.

Шаг 1: Установите модуль pymysql

Перед установкой давайте проверим требования пакета pymysql.

Требования:

  • Python — один из следующих:
    • CPython >= 2,7 или >= 3,5
    • Последний PyPy
  • Сервер MySQL — один из следующих:
    • MySQL >= 5,5
    • MariaDB >= 5.5

Если у вас не установлена база данных MySQL, это не сработает. Поэтому сначала установите базу данных MySQL, а затем установите указанный выше пакет. Теперь, когда у вас есть MySQL, давайте двигаться дальше. Последняя стабильная версия доступна на PyPI и может быть установлена с помощью pip.

Введите следующую команду в терминале.

Теперь следующая команда является необязательной и не требуется для каждого варианта использования.

Чтобы использовать «sha256_password» или «caching_sha2_password» для аутентификации, вам необходимо установить дополнительную зависимость.

Итак, вы успешно установили модуль.

Шаг 2: Создайте базу данных и таблицу в MySQL

Когда мы подключаем Python к базе данных MySQL, мы должны указать в аргументе следующие вещи.

  1. Имя хоста
  2. Имя пользователя
  3. Пароль
  4. Имя базы данных

Теперь я использую сервер MAMP на своем Mac. Итак, я уже установил PHP, MySQL, Apache. Это означает, что мне просто нужно запустить сервер MySQL и перейти к PHPMyAdmin, чтобы создать базу данных и таблицу.

Если вы не используете PHPMyAdmin, вы можете вручную создать имя пользователя и создать пароль из терминала с помощью пакета MySQL. Таким образом, у вас есть имя пользователя и пароль MySQL.

Затем вам нужно вставить две-три строки в таблицу. Если вы этого не знаете, проверьте запрос INSERT INTO.

Смотрите мою таблицу в MySQL.

Как подключить Python к MySQL

На приведенном выше снимке экрана видно, что наша таблица называется coronas и состоит из двух строк. Мы будем извлекать все строки и печатать их в консоли Python.

Перед подключением к базе данных MySQL убедитесь в следующем:

  1. Вы создали базу данных laravel7crud.
  2. Вы создали таблицу coronas в laravel7crud.
  3. В этой таблице есть поля id, country_name, symptoms, cases, created_at и upated_at.
  4. Имя пользователя «root» и пароль «root» установлены для доступа к laravel7crud.
  5. Модуль Python PyMySQL правильно установлен на вашем компьютере.

Теперь все настроено на стороне MySQL. Вернемся к коду Python.

Шаг 3: Импортируйте пакет pymysql

Создайте файл Python с именем app.py и импортируйте пакет pymysql.

Шаг 4: Предоставьте свои учетные данные MySQL

Теперь напишите функцию pymysql connect() и передайте учетные данные, имя хоста и имя базы данных в качестве аргументов.

  • Мое имя хоста — ваш localhost.
  • Мое имя пользователя root.
  • Мой пароль root.
  • Моя база данных называется laravel7crud.

Пожалуйста, напишите свои учетные данные соответственно.

Если вы работаете на Live-сервере, то лучшей практикой безопасности будет запись учетных данных в файле .env или окружении. Не пишите прямо ни в одном файле Python и никому его не раскрывайте. Я выставил, потому что я работаю на локальном хосте, и это тестовая база данных.

Если соединение с источником данных установлено, объект соединения возвращается и сохраняется в БД для дальнейшего использования. В противном случае для db установлено значение None.

Шаг 5: Подготовьте объект курсора, используя метод cursor()

Затем объект db используется для создания объекта курсора, который, в свою очередь, используется для выполнения запросов SQL.

Я создал таблицу с именем coronas.

Мы выполнили оператор SELECT, чтобы получить все строки из таблицы.

Шаг 6: Операция чтения

Операция READ в любой базе данных означает получение некоторой полезной информации из базы данных.

Как только соединение с базой данных установлено, вы готовы сделать запрос в эту базу данных. Вы можете использовать либо метод fetchone() для получения одной записи, либо метод fetchall() для получения нескольких значений из таблицы базы данных.

  1. fetchone() — извлекает следующую строку набора результатов запроса. Набор результатов — это объект, который возвращается, когда объект курсора используется для запроса таблицы.
  2. fetchall() — извлекает все строки в наборе результатов. Если некоторые строки уже были извлечены из набора результатов, то он извлекает оставшиеся строки из набора результатов.
  3. rowcount — это атрибут только для чтения, который возвращает количество строк, на которые повлиял метод execute().

Давайте воспользуемся функцией cur.fetchall(), чтобы получить все строки.

Он напечатает все строки в консоли Python. Теперь последний шаг — закрыть соединение.

Шаг 7: Закройте соединение с MySQL

Наконец, прежде чем выйти, он гарантирует, что соединение с базой данных закрыто и ресурсы освобождены.

Окончательный код для подключения Python к MySQL

Выход:

Вот и все. Мы успешно подключились к базе данных MySQL и получили данные.

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python