Szybki start: nawiązywanie połączeń z danymi w usłudze Azure Database for PostgreSQL i wykonywanie zapytań względem nich za pomocą języka Python — pojedynczy serwer
DOTYCZY: Azure Database for PostgreSQL — pojedynczy serwer
Ważne
Usługa Azure Database for PostgreSQL — pojedynczy serwer znajduje się na ścieżce wycofania. Zdecydowanie zalecamy uaktualnienie do usługi Azure Database for PostgreSQL — serwer elastyczny. Aby uzyskać więcej informacji na temat migracji do usługi Azure Database for PostgreSQL — serwer elastyczny, zobacz Co się dzieje z usługą Azure Database for PostgreSQL — pojedynczy serwer?.
W tym przewodniku Szybki start dowiesz się, jak nawiązać połączenie z bazą danych na pojedynczym serwerze usługi Azure Database for PostgreSQL i uruchomić instrukcje SQL w celu wykonywania zapytań przy użyciu języka Python w systemach macOS, Ubuntu Linux lub Windows.
Napiwek
Jeśli chcesz utworzyć aplikację Django przy użyciu bazy danych PostgreSQL, zapoznaj się z samouczkiem Wdrażanie aplikacji internetowej Django za pomocą bazy danych PostgreSQL .
Wymagania wstępne
W tym przewodniku Szybki start potrzebne są następujące elementy:
Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
Tworzenie pojedynczego serwera usługi Azure Database for PostgreSQL przy użyciu witryny Azure Portal
lub interfejs wiersza polecenia platformy Azure, jeśli go nie masz.Na podstawie tego, czy używasz dostępu publicznego czy prywatnego, wykonaj jedną z poniższych akcji, aby włączyć łączność.
Akcja Metoda łączności Przewodnik z instrukcjami Konfigurowanie reguł zapory Publiczne Portal
Interfejs wiersza poleceniaKonfigurowanie punktu końcowego usługi Publiczne Portal
Interfejs wiersza poleceniaKonfigurowanie łącza prywatnego Prywatne Portal
Interfejs wiersza poleceniaŚrodowisko Python w wersji 2.7 lub 3.6 lub nowszej.
Najnowszy instalator pakietu pip .
Zainstaluj pakiet psycopg2 przy użyciu
pip install psycopg2-binary
w oknie terminalu lub wiersza polecenia. Aby uzyskać więcej informacji, zobacz jak zainstalować programpsycopg2
.
Uzyskiwanie informacji o połączeniu z bazą danych
Połączenie do bazy danych usługi Azure Database for PostgreSQL wymaga w pełni kwalifikowanej nazwy serwera i poświadczeń logowania. Te informacje można uzyskać w witrynie Azure Portal.
W witrynie Azure Portal wyszukaj i wybierz nazwę serwera usługi Azure Database for PostgreSQL.
Na stronie Przegląd serwera skopiuj w pełni kwalifikowaną nazwę serwera i nazwę użytkownika Administracja. W pełni kwalifikowana nazwa serwera jest zawsze w postaci <my-server-name.postgres.database.azure.com>, a nazwa użytkownika Administracja jest zawsze w postaci <my-admin-username>@<my-server-name>.
Potrzebne jest również hasło administratora. Jeśli go zapomnisz, możesz zresetować ją z tej strony.
Ważne
Zastąp następujące wartości:
<server-name>
oraz<admin-username>
wartości skopiowane z witryny Azure Portal.<admin-password>
przy użyciu hasła serwera.<database-name>
domyślna baza danych o nazwie postgres została automatycznie utworzona podczas tworzenia serwera. Możesz zmienić nazwę tej bazy danych lub utworzyć nową bazę danych przy użyciu poleceń SQL.
Krok 1. Połączenie i wstawianie danych
Poniższy przykład kodu nawiązuje połączenie z bazą danych usługi Azure Database for PostgreSQL przy użyciu polecenia
- psycopg2.connect , funkcja i ładuje dane za pomocą instrukcji SQL INSERT .
- funkcja cursor.execute wykonuje zapytanie SQL względem bazy danych.
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()
Po pomyślnym uruchomieniu kodu generuje następujące dane wyjściowe:
Krok 2. Odczytywanie danych
Poniższy przykład kodu nawiązuje połączenie z bazą danych usługi Azure Database for PostgreSQL i używa ich
- cursor.execute z instrukcją SQL SELECT w celu odczytu danych.
- cursor.fetchall() akceptuje zapytanie i zwraca zestaw wyników w celu iteracji przy użyciu polecenia
# 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. Aktualizowanie danych
W poniższym przykładzie kodu użyto instrukcji cursor.execute z instrukcją SQL UPDATE w celu zaktualizowania danych.
# 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. Usuwanie danych
Poniższy przykład kodu uruchamia polecenie cursor.execute z instrukcją SQL DELETE , aby usunąć wcześniej wstawiony element spisu.
# Delete data row from table
cursor.execute("DELETE FROM inventory WHERE name = %s;", ("orange",))
print("Deleted 1 row of data")
Czyszczenie zasobów
Aby wyczyścić wszystkie zasoby używane w tym przewodniku Szybki start, usuń grupę zasobów przy użyciu następującego polecenia:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes