PostgreSQL Python: manipulace s daty BLOB

shrnutí: v tomto tutoriálu se dozvíte, jak zacházet s daty PostgreSQL BLOB v Pythonu.

standardní SQL definuje BLOB jako binární velký objekt pro ukládání binárních dat v databázi. S datovým typem BLOB můžete ukládat obsah obrázku, dokumentu atd. do stolu.

PostgreSQL nepodporuje BLOB, ale můžete použít datový typ BYTEA pro ukládání binárních dat.

podívejme se na tabulku part_drawings.

tabulka part_drawings ukládá obrázky dílů do sloupce drawing_data. Ukážeme vám, jak do tohoto sloupce vložit binární data a přečíst je zpět.

vložit BLOB do tabulky

Chcete-li vložit data BLOB do tabulky, použijte následující kroky:

  1. nejprve si přečtěte data ze souboru.
  2. dále se připojte k databázi PostgreSQL vytvořením nového objektu připojení z funkce connect().
  3. potom vytvořte objekt cursor z objektu connection.
  4. poté spusťte příkaz Vložit se vstupními hodnotami. Pro BLOB data použijete objekt Binary modulu psycopg
  5. a nakonec změny trvale odevzdáte do databáze PostgreSQL voláním metody commit() objektu connection.

následující funkce write_blob() načte binární data ze souboru určeného parametrem path_to_file a vloží je do tabulky part_drawings.

následující úryvek volá funkci write_blob ()dvakrát pro vložení dvou nových částí s odpovídajícími binárními daty z obrazových souborů do tabulky part_drawings.

Code language: Python (python)

číst BLOB v tabulce

kroky čtení BLOB z tabulky jsou podobné krokům dotazování dat z tabulky. Po načtení binárních dat z tabulky, můžeme uložit do souboru, výstup do webového prohlížeče, atd.

následující funkce read_blob() vybere data BLOB z tabulky part_drawings na základě zadaného ID součásti a uloží data BLOB do souboru.

následující úryvek přečte binární data částí s id hodnotou 1 a 2 a uloží binární data do složky images/blob.

v tomto tutoriálu jste se naučili, jak zacházet s daty PostgreSQL BLOB v Pythonu pomocí adaptéru databáze psycopg.

  • byl tento návod užitečný ?
  • YesNo

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.