Краткое руководство. Использование Python для подключения и запроса данных в База данных Azure для PostgreSQL — отдельный сервер
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — отдельный сервер
Внимание
База данных Azure для PostgreSQL — одиночный сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для PostgreSQL — гибкий сервер. Дополнительные сведения о миграции на База данных Azure для PostgreSQL — гибкий сервер см. в статье "Что происходит с одним сервером База данных Azure для PostgreSQL?".
Из этого краткого руководства вы узнаете, как подключиться к базе данных в службе "База данных Azure для PostgreSQL — отдельный сервер" и выполнить инструкции SQL для создания запросов с помощью Python в macOS, Ubuntu Linux или Windows.
Совет
Если вы хотите создать приложение Django с помощью PostgreSQL, изучите учебник Развертывание веб-приложения Django с помощью PostgreSQL.
Необходимые компоненты
Для целей этого краткого руководства понадобится:
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Создать отдельный сервер Базы данных Azure для PostgreSQL на портале Azure
или с помощью Azure CLI, если он еще не создан.Выполнить ОДНО из действий (в зависимости от того, пользуетесь вы общим или частным доступом), чтобы настроить возможность подключения.
Действие Метод подключения Практическое руководство Настройка правил брандмауэра Общедоступный Портал
CLIНастройка конечной точки службы Общедоступный Портал
CLIНастройка приватного канала Private Портал
CLIУстановщик пакета pip последней версии.
Установить psycopg2, используя
pip install psycopg2-binary
в терминале или окне командной строки. Дополнительные сведения см. в статье об установкеpsycopg2
.
Получение сведений о подключении к базе данных
Чтобы подключиться к базе данных службы "База данных Azure для PostgreSQL", требуется полное имя сервера и учетные данные для входа. Эти сведения можно получить на портале Azure.
На портале Azure выполните поиск по имени сервера и выберите сервер службы "База данных Azure для PostgreSQL".
На странице Обзор сервера скопируйте полное имя сервера и имя администратора. Полное имя сервера всегда имеет формат <имя-сервера>.postgres.database.azure.com, а имя администратора — формат <имя-администратора>@<имя-сервера>>.
Кроме того, потребуется пароль администратора. Если вы не помните этот пароль, вы можете сбросить его на этой странице.
Внимание
Измените следующие значения:
<server-name>
и<admin-username>
значениями, скопированными на портале Azure.<admin-password>
паролем сервера.<database-name>
база данных по умолчанию с именем postgres была автоматически создана при создании сервера. Можно переименовать эту базу данных или создать новую базу данных с помощью команд SQL.
Шаг 1. Подключение и вставка данных
Следующий пример кода подключается к Базе данных Azure для PostgreSQL с помощью
- функции psycopg2.connect и загружает данные с помощью инструкции SQL INSERT.
- Функция cursor.execute выполняет SQL-запрос к базе данных.
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()
При успешном выполнении кода возвращаются следующие данные:
Шаг 2. Чтение данных
Следующий пример кода подключается к базе данных службы "База данных Azure для PostgreSQL" и использует
- cursor.execute с инструкцией SQL SELECT для чтения данных.
- Функция сursor.fetchall() принимает запрос и возвращает результирующий набор для итерации с помощью
# 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])))
Шаг 3. Обновление данных
В следующем примере кода для обновления данных используется cursor.execute с инструкцией SQL UPDATE.
# 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")
Шаг 5. Удаление данных
В следующем примере кода cursor.execute выполняется с инструкцией SQL DELETE, чтобы удалить ранее вставленный элемент inventory.
# Delete data row from table
cursor.execute("DELETE FROM inventory WHERE name = %s;", ("orange",))
print("Deleted 1 row of data")
Очистка ресурсов
Чтобы очистить все ресурсы, используемые во время этого краткого руководства, удалите группу ресурсов с помощью следующей команды:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes