Rövid útmutató: Adatok csatlakoztatása és lekérdezése a Python használatával az Azure Database for PostgreSQL-ben – rugalmas kiszolgáló
A következőkre vonatkozik: Azure Database for PostgreSQL – Rugalmas kiszolgáló
Ebben a rövid útmutatóban egy rugalmas Azure Database for PostgreSQL-kiszolgálópéldányhoz csatlakozhat a Python használatával. Ezután SQL-utasításokkal lekérdezheti, beszúrhatja, frissítheti és törölheti az adatbázisban lévő adatokat Mac, Ubuntu Linux és Windows platformokról.
Ez a cikk feltételezi, hogy ismeri a Python használatát, de még nem használta a rugalmas Azure Database for PostgreSQL-kiszolgálót.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Rugalmas Azure Database for PostgreSQL-kiszolgálópéldány. Rugalmas Azure Database for PostgreSQL-kiszolgálópéldány létrehozásához tekintse meg az Azure Database for PostgreSQL – Rugalmas kiszolgálópéldány létrehozása az Azure Portal használatával című témakört.
- Python 2.7 vagy 3.6+.
- A pipcsomag legújabb telepítője.
Az ügyfél-munkaállomás előkészítése
- Ha rugalmas Azure Database for PostgreSQL-kiszolgálópéldányt hozott létre privát hozzáféréssel (VNet-integráció), akkor a kiszolgálóval azonos virtuális hálózaton belüli erőforrásból kell csatlakoznia a kiszolgálóhoz. Létrehozhat egy virtuális gépet, és hozzáadhatja azt a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányával létrehozott virtuális hálózathoz. Tekintse meg az Azure Database for PostgreSQL – Rugalmas kiszolgálói virtuális hálózat létrehozása és kezelése az Azure CLI használatával.
- Ha rugalmas Azure Database for PostgreSQL-kiszolgálópéldányt hozott létre nyilvános hozzáféréssel (engedélyezett IP-címekkel), hozzáadhatja a helyi IP-címet a kiszolgáló tűzfalszabályainak listájához. Tekintse meg az Azure Database for PostgreSQL rugalmas kiszolgálói tűzfalszabályok létrehozását és kezelését az Azure CLI használatával.
A Python-kódtárak telepítése a PostgreSQL-hez
A psycopg2 modul lehetővé teszi a PostgreSQL-adatbázisokhoz való csatlakozást és lekérdezést, és Linux, macOS vagy Windows rendszerű kerékcsomagként érhető el. Telepítse a modul bináris verzióját, beleértve az összes függőséget is.
A telepítéshez psycopg2
nyisson meg egy terminált vagy parancssort, és futtassa a parancsot pip install psycopg2
.
Adatbázis-kapcsolat adatainak lekérése
Csatlakozás rugalmas Azure Database for PostgreSQL-kiszolgálópéldányhoz való hozzáféréshez a kiszolgáló teljes neve és bejelentkezési hitelesítő adatai szükségesek. Ezeket az információkat az Azure Portalon szerezheti be.
Az Azure Portalon keresse meg és válassza ki a rugalmas Azure Database for PostgreSQL-kiszolgáló nevét.
A kiszolgáló Áttekintés lapján másolja ki a teljes kiszolgálónevetés a Rendszergazda felhasználónevet. A kiszolgáló teljes neve mindig a my-server-name.postgres.database.azure.com> formátumú<.
Szüksége van a rendszergazdai jelszavára is. Ha elfelejti, visszaállíthatja az áttekintési oldalról.
A Python-példák futtatása
A cikkben szereplő minden kód példánál:
Hozzon létre egy új fájlt egy szövegszerkesztőben.
Adja hozzá a példakódot a fájlhoz. A kódban cserélje le a következőt:
<server-name>
és<admin-username>
az Azure Portalról másolt értékekkel.<admin-password>
a kiszolgáló jelszavával.<database-name>
a rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázis nevével. A kiszolgáló létrehozásakor automatikusan létre lett hozva egy postgres nevű alapértelmezett adatbázis. Átnevezheti az adatbázist, vagy létrehozhat egy új adatbázist SQL-parancsokkal.
Mentse a fájlt a projektmappába . py kiterjesztéssel, például postgres-insert.py. Windows esetén a fájl mentésekor győződjön meg arról, hogy az UTF-8 kódolás ki van választva.
A fájl futtatásához váltson a projektmappára egy parancssori felületen, és írja be
python
például a fájlnevetpython postgres-insert.py
.
Tábla létrehozása és adatok beszúrása
Az alábbi példakód a psycopg2.connect függvény használatával csatlakozik a rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázishoz, és sql IN Standard kiadás RT utasítással tölti be az adatokat. A cursor.execute függvény végrehajtja az SQL-lekérdezést az adatbázison.
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()
Ha a kód sikeresen fut, a következő kimenetet hozza létre:
Adatok beolvasása
Az alábbi példakód a rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázishoz csatlakozik, és a cursor.execute parancsot használja az SQL Standard kiadás LECT utasítással az adatok olvasásához. Ez a függvény fogadja el a lekérdezést, és visszaad egy eredményhalmazt, amely a cursor.fetchall() használatával iterátumot eredményez.
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()
# 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])))
# Cleanup
conn.commit()
cursor.close()
conn.close()
Adatok frissítése
Az alábbi példakód a rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázishoz csatlakozik, és a cursor.execute parancsot használja az SQL UPDATE utasítással az adatok frissítéséhez.
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()
# 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")
# Cleanup
conn.commit()
cursor.close()
conn.close()
Adatok törlése
Az alábbi példakód a rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázishoz csatlakozik, és a cursor.execute parancsot használja az SQL DELETE utasítással a korábban beszúrt leltárelem törléséhez.
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()
# Delete data row from table
cursor.execute("DELETE FROM inventory WHERE name = %s;", ("orange",))
print("Deleted 1 row of data")
# Cleanup
conn.commit()
cursor.close()
conn.close()