Inicio rápido: Uso de Python para conectarse y consultar datos en un servidor único Azure Database for PostgreSQL

Se aplica a: Azure Database for PostgreSQL: servidor único

Importante

El servicio de servidor único de Azure Database for PostgreSQL está en proceso de retirada. Es muy recomendable actualizar al servidor flexible de Azure Database for PostgreSQL. Para obtener más información sobre la migración al servidor flexible de Azure Database for PostgreSQL, consulte ¿Qué sucederá con el servicio de servidor único de Azure Database for PostgreSQL?.

En esta guía de inicio rápido, obtendrá información sobre cómo conectarse a la base de datos en Azure Database for PostgreSQL (servidor único) y ejecutar instrucciones SQL para realizar consultas mediante Python en macOS, Ubuntu Linux o Windows.

Sugerencia

Si está pensando en compilar una aplicación de Django con PostgreSQL, consulte el tutorial, Implementación de una aplicación web de Django de Python con PostgreSQL tutorial.

Requisitos previos

Para esta guía de inicio rápido, necesitará lo siguiente:

  • Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.

  • Crear un único servidor Azure Database for PostgreSQL mediante Azure Portal
    o la CLI de Azure si no tiene uno.

  • En función de si usa el acceso público o privado, complete UNA de las acciones siguientes para habilitar la conectividad.

    Acción Método de conectividad Guía paso a paso
    Configurar reglas de firewall Público Portal
    CLI
    Configurar el punto de conexión de servicio Público Portal
    CLI
    Configuración del vínculo privado Private Portal
    CLI
  • Python 2.7 o 3.6+.

  • Instalador de paquetes pip más reciente.

  • Instalar psycopg2 mediante pip install psycopg2-binary en un terminal o una ventana del símbolo del sistema. Para más información, consulte Instalaciónpsycopg2.

Obtener información de conexión de base de datos

La conexión a una base de datos Azure Database for PostgreSQL requiere el nombre completo del servidor y las credenciales de inicio de sesión. Puede obtener esta información en el Azure Portal.

  1. En el Azure Portal, busque y seleccione el nombre del servidor de Azure Database for PostgreSQL.

  2. En la página deInformación general del servidor, copie el nombre completo del Servidor y el Nombre del usuario administrador. El nombre completo del servidor siempre tiene el formato <my-server-name>.postgres.database.azure.com y el Nombre del usuario administrador siempre tiene el formato <my-admin-username>@<my-server-name>.

    También necesitará la contraseña de administrador. Si la olvida, puede restablecerla desde esta página.

    Nombre del servidor Azure Database for PostgreSQL

Importante

Reemplace los siguientes valores:

  • <server-name> y <admin-username> con los valores que copió del Azure Portal.
  • <admin-password> con la contraseña del servidor.
  • <database-name> se ha creado automáticamente una base de datos predeterminada llamada postgres al crear el servidor. Puede cambiar el nombre de la base de datos o crear una nueva mediante comandos SQL.

Paso 1: Conexión e inserción de datos

El siguiente ejemplo de código se conecta a la base de datos de Azure Database for PostgreSQL con

  • la función psycopg2.connect y carga los datos con la instrucción SQL INSERT.
  • la función cursor.execute ejecuta la consulta SQL en la base de datos.
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()

Cuando el código se ejecuta correctamente, genera el siguiente resultado:

Salida de la línea de comandos

Paso 2: Lectura de datos

El siguiente ejemplo de código se conecta a la base de datos de Azure Database for PostgreSQL y usa

  • cursor.execute con la instrucción SQL SELECT para leer los datos.
  • cursor.fetchall() acepta una consulta y devuelve un conjunto de resultados para iterar mediante

# 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])))

Paso 3: Actualización de datos

En el ejemplo de código siguiente se usa cursor.execute con la instrucción SQL UPDATE para actualizar los datos.


# 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")

Paso 5: Eliminación de datos

En el ejemplo de código siguiente se ejecuta cursor.execute con la instrucción SQL DELETE para eliminar un elemento de inventario que se ha insertado previamente.


# Delete data row from table

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

Limpieza de recursos

Para limpiar todos los recursos utilizados durante esta guía de inicio rápido, elimine el grupo de recursos con el siguiente comando:

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

Pasos siguientes