Rychlý start: Použití Pythonu k připojení a dotazování dat na jednoúčelovém serveru Azure Database for PostgreSQL

PLATÍ PRO: Azure Database for PostgreSQL – Jednoúčelový server

Důležité

Jednoúčelový server Azure Database for PostgreSQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for PostgreSQL. Další informace o migraci na flexibilní server Azure Database for PostgreSQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for PostgreSQL?

V tomto rychlém startu se dozvíte, jak se připojit k databázi na jednoúčelovém serveru Azure Database for PostgreSQL a spustit příkazy SQL pro dotazování pomocí Pythonu v systému macOS, Ubuntu Linux nebo Windows.

Tip

Pokud chcete vytvořit aplikaci Django s PostgreSQL, pak si projděte kurz nasazení webové aplikace Django s PostgreSQL .

Požadavky

Pro účely tohoto rychlého startu potřebujete:

Získání informací o připojení k databázi

Připojení pro databázi Azure Database for PostgreSQL vyžaduje plně kvalifikovaný název serveru a přihlašovací údaje. Tyto informace můžete získat z webu Azure Portal.

  1. Na webu Azure Portal vyhledejte a vyberte název serveru Azure Database for PostgreSQL.

  2. Na stránce Přehled serveru zkopírujte plně kvalifikovaný název serveru a uživatelské jméno Správa. Plně kvalifikovaný název serveru je vždy ve formátu< my-server-name.postgres.database.azure.com> a Správa uživatelské jméno je vždy formuláře <my-admin-username>@<my-server-name>.

    Potřebujete také heslo správce. Pokud ho zapomenete, můžete ho obnovit z této stránky.

    Název serveru Azure Database for PostgreSQL

Důležité

Nahraďte následující hodnoty:

  • <server-name> a <admin-username> s hodnotami, které jste zkopírovali z webu Azure Portal.
  • <admin-password> s heslem serveru.
  • <database-name> Při vytváření serveru se automaticky vytvořila výchozí databáze s názvem postgres . Tuto databázi můžete přejmenovat nebo vytvořit novou databázi pomocí příkazů SQL.

Krok 1: Připojení a vložení dat

Následující příklad kódu se připojí k databázi Azure Database for PostgreSQL pomocí příkazu .

import psycopg2

# Update connection string information

host = "<server-name>"
dbname = "<database-name>"
user = "<admin-username>"
password = "<admin-password>"
sslmode = "require"

# Construct connection string

conn_string = "host={0} user={1} dbname={2} password={3} sslmode={4}".format(host, user, dbname, password, sslmode)
conn = psycopg2.connect(conn_string)
print("Connection established")

cursor = conn.cursor()

# Drop previous table of same name if one exists

cursor.execute("DROP TABLE IF EXISTS inventory;")
print("Finished dropping table (if existed)")

# Create a table

cursor.execute("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
print("Finished creating table")

# Insert some data into the table

cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("banana", 150))
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("orange", 154))
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("apple", 100))
print("Inserted 3 rows of data")

# Clean up

conn.commit()
cursor.close()
conn.close()

Když se kód úspěšně spustí, vytvoří následující výstup:

Výstup příkazového řádku

Krok 2: Čtení dat

Následující příklad kódu se připojí k databázi Azure Database for PostgreSQL a použije ji.


# Fetch all rows from table

cursor.execute("SELECT * FROM inventory;")
rows = cursor.fetchall()

# Print all rows

for row in rows:
    print("Data row = (%s, %s, %s)" %(str(row[0]), str(row[1]), str(row[2])))

Krok 3: Aktualizace dat

Následující příklad kódu používá cursor.execute s příkazem SQL UPDATE k aktualizaci dat.


# Update a data row in the table

cursor.execute("UPDATE inventory SET quantity = %s WHERE name = %s;", (200, "banana"))
print("Updated 1 row of data")

Krok 5: Odstranění dat

Následující příklad kódu spustí cursor.execute s příkazem SQL DELETE a odstraní položku inventáře, kterou jste předtím vložili.


# Delete data row from table

cursor.execute("DELETE FROM inventory WHERE name = %s;", ("orange",))
print("Deleted 1 row of data")

Vyčištění prostředků

Pokud chcete vyčistit všechny prostředky použité během tohoto rychlého startu, odstraňte skupinu prostředků pomocí následujícího příkazu:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

Další kroky