Эта статья была обновлена с тех пор, когда она была первоначально опубликована 26 ноября 2023 года.
Я хочу показать вам что -то довольно крутое, что может сделать Python: вставить данные в таблицу базы данных MySQL.
Представьте себе, что вы можете вводить данные в таблицу без необходимости войти в консоль MySQL, и инъекция этих данных из приложения Python может быть невероятно гибким и удобным. Еще лучше, это не так уж и сложная задача.
Позвольте мне показать вам, как это делается.
Что вам нужно
Я собираюсь продемонстрировать это на экземпляре Ubuntu Server 22.04.3. Если вы используете другое распределение Linux (или если вы используете MacOS или Windows), вам придется изменить команды установки. С учетом сказанного вам понадобится ОС, которая поддерживает Python3 и пользователь с привилегиями SUDO.
И, просто для развлечения, я собираюсь показать вам, как установить MySQL и создать пользователь и базу данных.
Groovy. Давайте сделаем магию Python/Database.
Установка MySQL и Python
Первое, что мы собираемся сделать, это установить сервер базы данных MySQL. Для этого войдите в свой экземпляр Server Ubuntu и подготовьтесь к установке.
sudo apt-get установить mysql-server -y 1 sudo apt-get install mysql-server -y
Установка MySQL на Ubuntu
Когда это закончится, вы захотите включить службу, поэтому он работает на загрузке. Для этого выпустите команду:
Sudo SystemCtl включить -сейчас MySQL 1 Sudo SystemCtl Включение -сейчас MySQL
Установите разъем Python MySQL
Прежде чем продолжить, вы также должны установить разъем MySQL Python3, который позволяет Python взаимодействовать с вашими базами данных MySQL. Это может быть достигнуто с помощью команды:
sudo apt-get установить python3-mysql.connector -y 1 sudo apt-get установить python3-mysql.connector -y
Если ваш экземпляр Ubuntu еще не установлен Python, вы можете сделать это с помощью команды:
sudo apt -get установить python3 -y 1 sudo apt -get установить python3 -y
Вот и все для установки.
Создание базы данных и пользователя в MySQL Создать базу данных MySQL
Далее нам нужно создать базу данных. Войдите в консоли MySQL с командой:
sudo mysql 1 sudo mysql
Оказавшись там, создайте базу данных под названием «Персонал» с командой:
Создать персонал базы данных; 1 Создать персонал базы данных;
Создайте пользователя MySQL
Теперь мы можем создать пользователя (мы назову его «Джек») и дать это разрешение пользователя для использования новой базы данных. Создайте пользователя с помощью:
Создать пользователь «jack»@’localhost’, идентифицированный «пароль»; 1 Создать пользователь «jack»@’localhost’, идентифицированный «пароль»;
Убедитесь, что пароль является сильным, уникальным паролем.
Дайте этому пользователю доступ к нашей базе данных персонала с командой:
Предоставить все привилегии в штате.* TO ‘Jack’@’Localhost’; 1 предоставить все привилегии в штате.* — «Джек»@’Localhost’;
Создать таблицу
Теперь мы должны создать таблицу. Во -первых, перейти на базу данных персонала с:
Использовать персонал; 1 используйте персонал;
Теперь мы можем создать таблицу в нашей новой базе данных. Давайте будем простыми и создадим таблицу «Редакционная статья» с двумя столбцами (имя и электронная почта). Команда для этого будет:
Создать редакционную статью таблицы (ID Int, имя VARCHAR (30), электронная почта VARCHAR (30)); 1 Создание редакционной статьи таблицы (id int, name varchar (30), электронная почта varchar (30));
Теперь у нас есть база данных, пользователь и таблица, готовая к действию.
Создание приложения Python
Здесь начинается веселье. Мы собираемся создать приложение Python, которое вводит данные в имени и столбцы электронной почты редакционных столбцов.
Создайте сценарий с помощью команды:
nano insert.py 1 nano insert.py
В этом файле вставьте следующий содержимое:
Импорт mysql.connector mydb = mysql.connector.connect (host = «localhost», user = «jack», password = «password», database = «Персонал») mycursor = mydb.cursor () sql = «insert в редакционные (имя, электронное письмо) значения ( %s, %s)» val = (name «,» emike vecult vecult vecure vecure. val) mydb.commit () print (mycursor.rowcount, «Вставка записи». ») SQL = «Вставьте в редакционные (имя, электронная почта) значения ( %s, %s)» val = («name», «email») mycursor.execute (sql, val) mydb.commit () print (mycursor.rowcount, «запись.»)
Пароль — это пароль, который вы создали для MySQL User Gack, имя — это имя, которое вы хотите вставить в столбец имени, а электронная почта — это адрес, который вы хотите вставить в столбец электронной почты.
Вот немного больше объяснения:
- Первая строка импортирует необходимую функцию, которая позволяет Python подключаться к MySQL.
- Раздел MYDB настраивает информацию для базы данных.
- mydb.cursor () — это функция, которая позволяет вставить данные в базу данных.
- Линия SQL — наш первый запрос MySQL.
- Линия VAL определяет наши столбцы для базы данных.
- Mycursor.execute выполняет вышеуказанные операции.
- Mydb.commit () подтверждает изменения, внесенные mycursor.execute.
- Линия печати печатает вывод, чтобы указать успех или сбой.
Сохраните и закройте файл с помощью комбинации клавиш CTRL+X.
Запуск приложения
Теперь мы можем запустить наше новое приложение Python, которое введите данные в таблицу, которую вы указали в сценарии. Команда запуска для этого будет:
python3 insert.py 1 python3 insert.py
Вы должны получить подтверждение, что инъекция была успешной. Вы можете проверить это с помощью команды:
Выберите * из редакционной статьи; 1 Выберите * из редакционной статьи;
Вы должны увидеть ваши первые данные, добавленные в таблицу.
Принять ввод от пользователя
Это не очень эффективный метод введения данных в базу данных, потому что вам придется каждый раз редактировать сценарий. К счастью, мы можем использовать переменные в Python, чтобы принять вход, который затем будет вставлен.
Для этого мы должны использовать функцию input (), которая позволяет сценарию принимать ввод от пользователя. Наш новый сценарий будет выглядеть так:
Импорт mysql.connector name = input («type a name:») email = input («введите электронное письмо:») mydb = mysql.connector.connect (host = «localhost», user = «jack», password = «, database =» naff «) 12345678910 import.connectorname = input = name:» an -name: «an -name:» an -name: «anme antail») «). mydb = mysql.connector.connect (host = «localhost», user = «jack», password = «пароль», база данных = «Персонал»)
mycursor = mydb.cursor () sql = «Вставка в редакционную (имя, электронная почта) значения ( %s, %s)» val = (имя, электронная почта) mycursor.execute (sql, val) mydb.commit () 1234567 mycursor = mydb.cursor () sql = «insert in editorial (name). Электронная почта) mycursor.execute (sql, val) mydb.commit ()
Пароль — это пароль, который вы установили для пользователя MySQL.
Сохраните и закройте файл. Запустите приложение таким же образом, только на этот раз вам будет предложено ввести имя, а затем электронное письмо.
И вот как вы можете использовать Python для введения данных в таблицу MySQL. Играйте с этим и посмотрите, насколько творчески вы можете получить.
Python/MySQL Connectivity FAQ В. В: Какой наиболее распространенный способ подключения к базе данных MySQL с помощью Python?
A: Наиболее распространенным методом является использование библиотеки MySQL-Connector-Python, которая обеспечивает простой и эффективный интерфейс для взаимодействия с базами данных MySQL.
В: Как установить библиотеку MySQL-Connector-Python в моей среде Python?
A: Вы можете установить его через PIP с командой PIP установить MySQL-Connector-Pythonили используйте Conda, как Установка Conda -c anaconda mysql-connector-python.
В: Что такое балансовый бассейнер MySQL, и как мне настроить?
A: Pooler Connection — это механизм, который позволяет делиться несколькими подключениями между приложениями. Самая популярная библиотека для этой цели в Python-MySQL-Connection-Pooling.
В: Каковы некоторые общие ошибки соединения MySQL и как их устранить?
A: Общие ошибки подключения включают:
- mysql-connector-python.errors.error: общие сообщения об ошибках базы данных.
- mysql.connector.exceptions.operationalerror: проблемы соединения (например, тайм -аут).
- mysql.connector.exceptions.programmingError: синтаксис или связанные с SQL ошибки.
Чтобы устранить эти ошибки, проверьте свои файлы конфигурации MySQL (my.cnf и т. Д.), Убедитесь, что предоставлено правильное имя пользователя и пароль, и убедитесь, что детали подключения к базе данных являются точными.
В: Могу ли я использовать другие библиотеки для подключения к базе данных MySQL в Python?
A: Да. Некоторые популярные альтернативы включают:
- SQLalchemy: библиотека ORM для работы с базами данных SQL.
- PymySQL: другая библиотека соединителей, которая обеспечивает аналогичную функциональность MySQL-Connector-Python.
- PymySQL (без модуля): аналогично вышеуказанному.
В: Что такое тайм -аут подключения в MySQL, и как мне настроить его?
A: Тайм -аут подключения — это период времени, который разрешен для попытки подключения к успеху. По умолчанию это значение можно настроить с помощью файлов конфигурации (my.cnf и т. Д.).
Эта статья была обновлена с тех пор, когда она была первоначально опубликована 18 июня 2019 года. Повышенные истории Youtube.com/thenewstack Tech движутся быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Джек Уоллен-это то, что происходит, когда генеральный разум с умом с современным Snark. Джек — искатель истины и писатель слов с квантовым механическим карандашом и разрозненным ударом звука и души. Хотя он проживает … читайте больше от Джека Валлена