Inicio rápido: Uso de Python para conectarse y consultar datos en un servidor único Azure Database for PostgreSQLQuickstart: Use Python to connect and query data in Azure Database for PostgreSQL - Single Server

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.In this quickstart, you will learn how to connect to the database on Azure Database for PostgreSQL Single Server and run SQL statements to query using Python on macOS, Ubuntu Linux, or 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.If you are looking to build a Django Application with PostgreSQL then checkout the tutorial, Deploy a Django web app with PostgreSQL tutorial.

Requisitos previosPrerequisites

Para esta guía de inicio rápido, necesitará lo siguiente:For this quickstart you need:

  • Una cuenta de Azure con una suscripción activa.An Azure account with an active subscription. Cree una cuenta gratuita.Create an account for free.

  • Crear un único servidor Azure Database for PostgreSQL mediante Azure PortalCreate an Azure Database for PostgreSQL single server using Azure portal
    o la CLI de Azure si no tiene uno.or Azure CLI if you do not have one.

  • En función de si usa el acceso público o privado, complete UNA de las acciones siguientes para habilitar la conectividad.Based on whether you are using public or private access, complete ONE of the actions below to enable connectivity.

    AcciónAction Método de conectividadConnectivity method Guía paso a pasoHow-to guide
    Configurar reglas de firewallConfigure firewall rules PúblicoPublic PortalPortal
    CLICLI
    Configurar el punto de conexión de servicioConfigure Service Endpoint PúblicoPublic PortalPortal
    CLICLI
    Configuración del vínculo privadoConfigure private link PrivatePrivate PortalPortal
    CLICLI
  • Python 2.7 o 3.6+.Python 2.7 or 3.6+.

  • Instalador de paquetes pip más reciente.Latest pip package installer.

  • Instalar psycopg2 mediante pip install psycopg2 en un terminal o una ventana del símbolo del sistema.Install psycopg2 using pip install psycopg2 in a terminal or command prompt window. Para más información, consulte Instalaciónpsycopg2.For more information, see how to install psycopg2.

Obtener información de conexión de base de datosGet database connection information

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.Connecting to an Azure Database for PostgreSQL database requires the fully qualified server name and login credentials. Puede obtener esta información en el Azure Portal.You can get this information from the Azure portal.

  1. En el Azure Portal, busque y seleccione el nombre del servidor de Azure Database for PostgreSQL.In the Azure portal, search for and select your Azure Database for PostgreSQL server name.

  2. En la página de Información general del servidor, copie el nombre completo del Servidor y el Nombre del usuario administrador.On the server's Overview page, copy the fully qualified Server name and the Admin username. 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> .The fully qualified Server name is always of the form <my-server-name>.postgres.database.azure.com, and the Admin username is always of the form <my-admin-username>@<my-server-name>.

    También necesitará la contraseña de administrador.You also need your admin password. Si la olvida, puede restablecerla desde esta página.If you forget it, you can reset it from this page.

    Nombre de servidor de Azure Database for PostgreSQL

Importante

Reemplace los siguientes valores:Replace the following values:

  • <server-name> y <admin-username> con los valores que copió del Azure Portal.<server-name> and <admin-username> with the values you copied from the Azure portal.
  • <admin-password> con la contraseña del servidor.<admin-password> with your server password.
  • <database-name> se ha creado automáticamente una base de datos predeterminada llamada postgres al crear el servidor.<database-name> a default database named postgres was automatically created when you created your server. Puede cambiar el nombre de la base de datos o crear una nueva mediante comandos SQL.You can rename that database or create a new database by using SQL commands.

Paso 1: Conexión e inserción de datosStep 1: Connect and insert data

El siguiente ejemplo de código se conecta a la base de datos de Azure Database for PostgreSQL conThe following code example connects to your Azure Database for PostgreSQL database using

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:When the code runs successfully, it produces the following output:

Salida de la línea de comandos

¿Tiene problemas? Háganoslo saber.Having issues? Let us know

Paso 2: Lectura de datosStep 2: Read data

El siguiente ejemplo de código se conecta a la base de datos de Azure Database for PostgreSQL y usaThe following code example connects to your Azure Database for PostgreSQL database and uses


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


¿Tiene problemas? Háganoslo saber.Having issues? Let us know

Paso 3: Actualización de datosStep 3: Update data

En el ejemplo de código siguiente se usa cursor.execute con la instrucción SQL UPDATE para actualizar los datos.The following code example uses cursor.execute with the SQL UPDATE statement to update data.


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

¿Tiene problemas? Háganoslo saber.Having issues? Let us know

Paso 5: Eliminación de datosStep 5: Delete data

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.The following code example runs cursor.execute with the SQL DELETE statement to delete an inventory item that you previously inserted.


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

¿Tiene problemas? Háganoslo saber.Having issues? Let us know

Limpieza de recursosClean up resources

Para limpiar todos los recursos utilizados durante esta guía de inicio rápido, elimine el grupo de recursos con el siguiente comando:To clean up all resources used during this quickstart, delete the resource group using the following command:

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

Pasos siguientesNext steps

¿No encuentra lo que busca? Háganoslo saber.Cannot find what you are looking for? Let us know.