Làm cách nào để đọc dữ liệu blob trong python?

Trong hướng dẫn này, chúng ta sẽ xem cách làm việc với kiểu dữ liệu BLOB trong MySQL bằng chương trình python. Chúng ta sẽ lướt qua kiểu dữ liệu BLOB và công dụng của nó. Sau đó, chúng ta sẽ xem làm thế nào chúng ta có thể chèn dữ liệu kiểu blob vào bảng và truy xuất dữ liệu đó sau bằng cách trình bày một ví dụ hiệu quả. Vậy hãy bắt đầu

Cũng đọc. Bản ghi xóa Python-MySQL

Kiểu dữ liệu BLOB và công dụng của nó

BLOB là viết tắt của đối tượng nhị phân lớn, là một họ các loại cột để chứa dữ liệu nhị phân kích thước lớn. Có bốn loại kiểu dữ liệu BLOB- TINYBLOB, BLOB, MEDIUMBLOB và LONGBLOB. Sự khác biệt giữa chúng chỉ là khả năng giữ dữ liệu

BLOB chủ yếu được sử dụng để lưu trữ các thực thể đa phương tiện như hình ảnh, video, âm thanh, tệp, v.v. BLOB có thể chứa một chuỗi nhị phân có kích thước dài tới 2.147.483.647 ký tự

Trong hướng dẫn này, chúng tôi sẽ viết một chương trình python để chèn hồ sơ người dùng cùng với ảnh hồ sơ vào bảng MySQL. Ngoài ra, chúng tôi sẽ xem cách chúng tôi có thể truy xuất dữ liệu từ cột BLOB và hiển thị hình ảnh gốc mà chúng tôi đã chèn

Tạo bảng

Điều đầu tiên chúng ta cần là bảng có cột kiểu BLOB. Vì vậy, hãy tạo một bảng có tên là "hồ sơ", nơi chúng tôi sẽ lưu trữ id, tên, tiểu sử và ảnh hồ sơ của sinh viên

CREATE TABLE profiles( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), bio VARCHAR(100), profile_pic BLOB );

Code language: SQL (Structured Query Language) (sql)

Ở đây, chúng ta đã tạo cột “profile_pic” kiểu BLOB. Bạn có thể chọn LONGBLOB hoặc MEDIUMBLOB cũng được. Nhưng, BLOB chỉ tốt cho chúng tôi

Bây giờ, bước tiếp theo là thiết lập kết nối giữa máy chủ MySQL và chương trình Python

Các gói/mô-đun mà chúng tôi sẽ cần

Để chứng minh ví dụ sau, chúng ta sẽ cần các gói sau - trình kết nối python-mysql, pybase64, gối và io

Cài đặt thế nào-

pip install pybase64 pip install Pillow pip install mysql-connector-python

Code language: Bash (bash)

Các mô-đun gối và io có thể đã được cài đặt với Python rồi. Tuy nhiên, bạn có thể thử cài đặt mô-đun gối

Nhập tất cả các mô-đun và gói

Trên đầu chương trình python, cần nhập tất cả các gói và mô-đun

import mysql.connector as mc import base64 from PIL import Image import io

Code language: Python (python)

Thiết lập kết nối và tạo đối tượng

import mysql.connector as mc conn = mc.connect( host="localhost", user="root", password="1234", database="journaldev" ) cur = conn.cursor()

Code language: Python (python)

Ở đây, chúng tôi đã nhập trình kết nối python-mysql và tạo một đối tượng con trỏ

Bước tiếp theo chúng ta cần làm theo là tạo một chức năng sẽ chuyển đổi hình ảnh đã tải lên thành dữ liệu nhị phân

Chuyển đổi một hình ảnh sang nhị phân

def convert(filename): with open(filename, 'rb') as file: binary = file.read() binary = base64.b64encode(binary) return binary

Code language: Python (python)

Ở đây, hàm convert sẽ chấp nhận tên tệp dưới dạng tham số ở dạng chuỗi

Sau đó, chúng tôi sẽ mở tệp ở chế độ đọc-nhị phân và lưu kết quả vào biến “nhị phân”

Bước này là đủ để chuyển đổi một hình ảnh sang dạng nhị phân. Tuy nhiên, để lấy và hiển thị ảnh lại cho người dùng, chúng ta sẽ cần mã hóa tệp để lấy chuỗi base64

Cuối cùng, chúng tôi trả lại dữ liệu được mã hóa cuối cùng

Chèn dữ liệu vào bảng bằng Python

Để chèn dữ liệu, chúng ta sẽ tạo một hàm để có thể chèn bao nhiêu dữ liệu tùy thích bằng một lệnh gọi hàm đơn giản

def insert(name, bio, profile_pic): profile_pic = convert(profile_pic) in_query = """INSERT INTO profiles(name,bio,profile_pic) values(%s, %s, %s)""" cur.execute(in_query, (name, bio, profile_pic)) conn.commit() print("\n DATA inserted successfully") return 0

Code language: Python (python)

Ở đây, chúng ta chấp nhận ba tham số từ hàm call- name, bio và profile_pic. profile_pic là đường dẫn của hình ảnh

Chúng tôi chuyển đường dẫn của hình ảnh hàm convert() mà chúng tôi đã tạo trước đó để lấy dữ liệu ở dạng nhị phân

Sau đó, chúng tôi viết một truy vấn chèn đơn giản và thực hiện nó. Cuối cùng, để lưu các thay đổi, chúng ta thực hiện phương thức commit()

Bây giờ hãy chèn một số dữ liệu

insert("Sashi Mehra", "Delicious, the world", "jack.jpg")

Code language: Python (python)

Ở đây, hai tham số đầu tiên là văn bản đơn giản sẽ được chèn vào bảng vì nó là. Tham số thứ ba cũng là một chuỗi, nhưng nó đại diện cho đường dẫn của hình ảnh

Hình ảnh mà chúng tôi đang sử dụng ở đây được đưa ra bên dưới và nó được lưu trong cùng thư mục với tệp chương trình hiện tại

Jack

Hãy chạy chương trình Python

Đã chèn dữ liệu

Như bạn có thể thấy, chúng tôi đã nhận được một tin nhắn trên thiết bị đầu cuối. Hãy kiểm tra bảng để xem liệu dữ liệu có được chèn đúng định dạng không

SELECT * FROM profiles \G;

Code language: SQL (Structured Query Language) (sql)

Bảng dữ liệu

Như bạn có thể thấy, dữ liệu được chèn ở dạng nhị phân. Độ dài của dữ liệu cột BLOB quá dài, có thể mất hàng trăm dòng trên thiết bị đầu cuối

Bây giờ, chúng ta sẽ viết một phương thức để lấy và hiển thị hình ảnh mà chúng ta đã chèn vào bảng

Lấy dữ liệu từ bảng

Rất dễ dàng để lấy dữ liệu văn bản từ bảng mysql. Chúng tôi sẽ xem cách chúng tôi có thể truy xuất dữ liệu từ cột BLOB và hiển thị hình ảnh mà chúng tôi đã chèn

________số 8_______

Ở đây, hàm retriveImage chấp nhận id sinh viên làm tham số

Sau đó, chúng tôi viết một truy vấn chọn để chỉ tìm nạp hình ảnh của id đã chỉ định

Sau đó, chúng tôi nhận được một chuỗi nhị phân, giải mã nó, chuyển đổi nó thành hình ảnh PIL và hiển thị nó bằng ứng dụng mặc định như vẽ hoặc ảnh nếu bạn là người dùng windows

Hãy gọi hàm retriveImage với id sinh viên và chạy chương trình xem nó có hiển thị hình ảnh mà chúng ta đã chèn không

retriveImage(1)

Code language: Python (python)

Truy xuất hình ảnh Blob

Như bạn có thể thấy, hình ảnh sẽ tự động được mở trong ứng dụng vẽ vì đây là ứng dụng mặc định được đặt trên máy của chúng tôi

Làm cách nào để đọc dữ liệu blob trong MySQL Python?

Truy xuất Hình ảnh và Tệp được lưu trữ dưới dạng BLOB từ Bảng MySQL bằng Python .
Cài đặt MySQL Connector Python bằng cách sử dụng pip
Thứ hai, Thiết lập kết nối cơ sở dữ liệu MySQL trong Python
Sau đó, Xác định truy vấn CHỌN để tìm nạp các giá trị cột BLOB từ bảng cơ sở dữ liệu
Thực hiện truy vấn CHỌN bằng con trỏ. hành hình()
Sử dụng con trỏ

Làm cách nào để đọc dữ liệu từ Azure BLOB Storage bằng Python?

Dưới đây là các bước cần thực hiện cho quy trình này. .
Tải xuống dữ liệu từ Azure blob với mẫu mã Python sau bằng dịch vụ Blob. Thay thế biến trong đoạn mã sau bằng các giá trị cụ thể của bạn. Bản sao Python. .
Đọc dữ liệu vào DataFrame của gấu trúc từ tệp đã tải xuống. Bản sao Python

Làm cách nào để xem dữ liệu blob trong MySQL?

Thực hiện ba bước. .
Chuyển đến "Tùy chọn WorkBench" -> Chọn "Trình chỉnh sửa SQL" trong "Kết quả truy vấn". kiểm tra "Xử lý BINARY/VARBINARY dưới dạng chuỗi ký tự không nhị phân"
Khởi động lại MySQL WorkBench
Now select SELECT SUBSTRING(,1,2500) FROM ;.