Jak se připojit a používat PostgreSQL v Pythonu

Důležité body

  • Nejprve si stáhněte a nainstalujte PostgreSQL pro váš operační systém. Následně využijte knihovnu psycopg2 pro propojení s databází PostgreSQL z prostředí Python.
  • Pro získání přihlašovacích údajů k serveru potřebných pro připojení k serveru Postgres z Pythonu použijte nástroj pgAdmin4.
  • K vytváření, ověřování nebo odstraňování databází PostgreSQL z Pythonu používejte SQL příkazy.

Pokud píšete Python skript, který potřebuje pracovat s daty z databáze Postgres, je nezbytné umět se k ní připojit. Jakmile je spojení navázáno, můžete skrze něj spouštět dotazy a získávat nebo ukládat data.

Stažení a instalace PostgreSQL

PostgreSQL představuje skvělou volbu pro vaše programátorské projekty. Můžete si stáhnout a nainstalovat verzi PostgreSQL, která je kompatibilní s vaším operačním systémem. Postgres je k dispozici ke stažení pro běžné platformy jako Windows, macOS a různé distribuce Linuxu (např. Ubuntu).

Instalační proces se může lišit v závislosti na operačním systému, proto je důležité postupovat podle kroků specifických pro váš systém, abyste zajistili bezproblémovou instalaci.

Instalace potřebné knihovny

Pro připojení k databázi PostgreSQL z Pythonu využijete knihovnu psycopg2. Pro ověření, zda je knihovna již nainstalována, spusťte následující příkaz v Python interpreteru:

import psycopg2

Pokud se zobrazí chybová hláška (například „ModuleNotFoundError: No module named ‚psycopg2′“), znamená to, že knihovnu musíte nainstalovat. Použijte k tomu tento příkaz:

pip install psycopg2

PIP je správce balíčků pro Python, který můžete instalovat v operačních systémech Windows, macOS i Linux. Usnadňuje proces instalace a správy Python balíčků.

Získání přístupových údajů pomocí pgAdmin4

pgAdmin4 vám nabízí grafické rozhraní pro správu vašich Postgres databází. Pravděpodobně jste ho instalovali současně s PostgreSQL, nicméně pokud tomu tak nebylo, můžete si ho stáhnout a nainstalovat samostatně.

Zde je popis, jak v pgAdmin4 naleznete přihlašovací údaje k serveru:

  • Spusťte pgAdmin4 z nabídky aplikací.
  • V levé části okna aplikace klikněte na „Servery“.
  • Zadejte heslo pro PostgreSQL, které jste nastavili během instalace.
  • Po připojení k serveru klikněte pravým tlačítkem myši na „PostgreSQL 16“ a vyberte „Vlastnosti“.
  • V okně „Vlastnosti“ přejděte na záložku „Připojení“.
  • Zaznamenejte si „Název hostitele“, „Port“ a „Uživatelské jméno“.

Připojení k serveru Postgres

S vašimi přihlašovacími údaji můžete použít knihovnu psycopg2 pro vytvoření spojení s vaším Postgres serverem. Pro toto použijte funkci `connect` následujícím způsobem:

conn = psycopg2.connect(host="localhost", port="5432", user="postgres", password='zde_zadejte_heslo')

Následně použijte funkci `cursor` pro provádění Postgres příkazů z Pythonu:

cur = conn.cursor()

Na závěr nastavte příznak `autocommit` pro automatické provádění a potvrzení všech změn, které provedete. Tímto způsobem se vyhnete nutnosti zadávat samostatný příkaz `commit` po každém příkazu.

conn.set_session(autocommit = True)

Spuštěním těchto příkazů se připojíte k lokální instanci vašeho Postgres serveru.

Vytvoření databáze Postgres

Databáze Postgres slouží k ukládání kolekce propojených tabulek. Novou databázi můžete vytvořit pomocí příkazu SQL `CREATE DATABASE`, který předáte metodě `execute` objektu kurzoru:

try:
    cur.execute('''CREATE DATABASE NAZEV_DB''')
except psycopg2.Error as e:
    print(e)

Vždy je vhodné ošetřit všechny možné výjimky, které mohou nastat. Tento příklad pouze vypíše případnou chybu. V reálném provozu byste měli implementovat odpovídající chování pro ošetření chyb.

Ověření databáze v pgAdmin4

Po spuštění předchozího dotazu si můžete ověřit, zda byla databáze úspěšně vytvořena v pgAdmin4. Otevřete rozhraní, obnovte seznam databází a vyhledejte vaši novou databázi.

Pokud například vytvoříte testovací databázi s názvem „hudba“, měla by se objevit v seznamu databází pod položkou „Postgres16 > Databáze“.

Odstranění databáze Postgres

Pokud již nepotřebujete konkrétní databázi, můžete ji odstranit (neboli „zahodit“) následujícím příkazem:

try:
    cur.execute('''DROP DATABASE HUDBA''')
except psycopg2.Error as e:
    print(e)

Použijte příkaz `DROP` namísto `CREATE`. Po úspěšném spuštění příkazu databáze již nebude v seznamu viditelná.