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á.