Guia de início rápido: usar Python para conectar e consultar dados no Banco de Dados do Azure para PostgreSQL - Servidor Flexível

APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Flexível

Neste início rápido, você se conecta a uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL usando Python. Em seguida, você usa instruções SQL para consultar, inserir, atualizar e excluir dados no banco de dados das plataformas Mac, Ubuntu Linux e Windows.

Este artigo pressupõe que você esteja familiarizado com o desenvolvimento usando Python, mas é novo no trabalho com o Banco de Dados do Azure para servidor flexível PostgreSQL.

Pré-requisitos

  • Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
  • Uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL. Para criar o Banco de Dados do Azure para instância de servidor flexível do PostgreSQL, consulte Criar um Banco de Dados do Azure para PostgreSQL - instância do Servidor Flexível usando o portal do Azure.
  • Python 2.7 ou 3.6+.
  • Instalador de pacote pip mais recente.

Preparando a estação de trabalho do cliente

Instalar as bibliotecas Python para PostgreSQL

O módulo psycopg2 permite conectar e consultar um banco de dados PostgreSQL, e está disponível como um pacote de roda Linux, macOS ou Windows. Instale a versão binária do módulo, incluindo todas as dependências.

Para instalar psycopg2o , abra um terminal ou prompt de comando e execute o comando pip install psycopg2.

Obter informações de conexão de banco de dados

A conexão a uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL requer o nome do servidor totalmente qualificado e as credenciais de logon. Você pode obter essas informações no portal do Azure.

  1. No portal do Azure, procure e selecione o nome do servidor flexível do Banco de Dados do Azure para PostgreSQL.

  2. Na página Visão geral do servidor, copie o nome do servidor totalmente qualificado e o nome de usuário Admin. O nome do servidor totalmente qualificado é sempre do formato <my-server-name.postgres.database.azure.com>.

    Você também precisa de sua senha de administrador. Se você esquecê-lo, você pode redefini-lo a partir da página de visão geral.

Como executar os exemplos Python

Para cada exemplo de código neste artigo:

  1. Crie um novo arquivo em um editor de texto.

  2. Adicione o exemplo de código ao arquivo. No código, substitua:

    • <server-name> e <admin-username> com os valores copiados do portal do Azure.
    • <admin-password> com a palavra-passe do servidor.
    • <database-name> com o nome do seu Banco de Dados do Azure para banco de dados de servidor flexível PostgreSQL. Um banco de dados padrão chamado postgres foi criado automaticamente quando você criou seu servidor. Você pode renomear esse banco de dados ou criar um novo banco de dados usando comandos SQL.
  3. Salve o arquivo na pasta do projeto com uma extensão .py , como postgres-insert.py. Para Windows, certifique-se de que a codificação UTF-8 está selecionada quando você salva o arquivo.

  4. Para executar o arquivo, altere para a pasta do projeto em uma interface de linha de comando e digite python seguido pelo nome do arquivo, por exemplo python postgres-insert.py.

Criar uma tabela e inserir dados

O exemplo de código a seguir se conecta ao seu banco de dados de servidor flexível do Banco de Dados do Azure para PostgreSQL usando a função psycopg2.connect e carrega dados com uma instrução SQL INSERT . A função cursor.execute executa a consulta SQL no banco de dados.

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()

Quando o código é executado com êxito, ele produz a seguinte saída:

Command-line output

Ler dados

O exemplo de código a seguir se conecta ao seu banco de dados de servidor flexível do Banco de Dados do Azure para PostgreSQL e usa cursor.execute com a instrução SQL SELECT para ler dados. Esta função aceita uma consulta e retorna um conjunto de resultados para iterar usando cursor.fetchall()

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()

Atualizar dados

O exemplo de código a seguir se conecta ao seu Banco de Dados do Azure para banco de dados de servidor flexível PostgreSQL e usa cursor.execute com a instrução SQL UPDATE para atualizar dados.

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()

Eliminar dados

O exemplo de código a seguir se conecta ao banco de dados flexível do servidor do Banco de Dados do Azure para PostgreSQL e usa cursor.execute com a instrução SQL DELETE para excluir um item de inventário que você inseriu anteriormente.

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()

Próximos passos