Как вставить / получить файл, хранящийся как BLOB в MySQL db, используя python

Я хочу написать скрипт python, который заполняет базу данных некоторой информацией. Один из столбцов в моей таблице-это BLOB, в который я хотел бы сохранить файл для каждой записи.

Как я могу прочитать файл (двоичный) и вставить его в БД с помощью python? Аналогично, как я могу получить его и записать этот файл обратно в произвольное место на жестком диске?

2 ответов


thedata = open('thefile', 'rb').read()
sql = "INSERT INTO sometable (theblobcolumn) VALUES (%s)"
cursor.execute(sql, (thedata,))

этот код, конечно, работает как написано, только если ваша таблица имеет только столбец BLOB и что вы хотите сделать это вставить, но, конечно, вы можете легко настроить его, чтобы добавить больше столбцов, используйте UPDATE вместо INSERT или что-то еще, что вам точно нужно сделать.

Я также предполагаю, что ваш файл является двоичным, а не текстовым и т. д.; опять же, если мои догадки неверно вам легко настроить вышеуказанный код соответствующим образом.

какой-то SELECT on cursor.execute, тогда какая-то выборка из курсора, как вы извлеките данные BLOB, точно так же, как вы извлекаете любые другие данные.


вы можете вставлять и читать капли из БД, как и любой другой тип столбца. С точки зрения API базы данных в BLOBs нет ничего особенного.