概要:このチュートリアルでは、PythonでPostgreSQL BLOBデータを処理する方法を学びます。
標準SQLでは、データベースにバイナリデータを格納するためのバイナリラージオブジェクトとしてBLOBが定義されています。 BLOBデータ型を使用すると、画像、文書などのコンテンツを保存できます。 テーブルに。
PostgreSQLはBLOBをサポートしていませんが、バイナリデータを格納するためにBYTEAデータ型を使用できます。
part_drawings
の表を見てみましょう。
part_drawings
テーブルには、部品の画像がdrawing_data
列に格納されます。 この列にバイナリデータを挿入して読み戻す方法を説明します。
テーブルへのBLOBの挿入
BLOBデータをテーブルに挿入するには、次の手順を使用します:
- まず、ファイルからデータを読み込みます。
- 次に、
connect()
関数から新しいconnectionオブジェクトを作成してPostgreSQLデータベースに接続します。 - 次に、
connection
オブジェクトからcursor
オブジェクトを作成します。 - その後、入力値を指定してINSERTステートメントを実行します。 BLOBデータの場合は、psycopgモジュール
- の
Binary
オブジェクトを使用し、最後に、connection
オブジェクトのcommit()
メソッドを呼び出してPostgreSQLデータベースに変更を永続的にコミットします。
次のwrite_blob()
関数は、path_to_file
パラメータで指定されたファイルからバイナリデータを読み取り、それをpart_drawings
テーブルに挿入します。
次のスニペットは、write_blob ()
関数を2回呼び出して、ピクチャファイルの対応するバイナリデータを含む2つの新しい部分をpart_drawings
テーブルに挿入します。
Code language: Python (python)
テーブル内のBLOBの読み取り
テーブルからBLOBを読み取る手順は、テーブルからデータを照会する手順と似ています。 テーブルからバイナリデータをフェッチした後、ファイルに保存したり、webブラウザに出力したりすることができます。
次のread_blob()
関数は、指定されたパーツidに基づいてpart_drawings
テーブルからBLOBデータを選択し、BLOBデータをファイルに保存します。
次のスニペットは、id値1と2の部分のバイナリデータを読み取り、バイナリデータをimages/blob
フォルダに保存します。
このチュートリアルでは、psycopgデータベースアダプタを使用してPythonでPostgreSQL BLOBデータを処理する方法を学習しました。
- このチュートリアルは役に立ちましたか?
- はい