Inicio rápido: Use Python para conectarse a datos y consultarlos en Azure Database for MySQL con la opción Servidor flexible.

SE APLICA A: Azure Database for MySQL: Servidor flexible

En este inicio rápido se va a conectar a una instancia de Azure Database for MySQL con la opción servidor flexible mediante Python. Puede usar instrucciones SQL para consultar, insertar, actualizar y eliminar datos de la base de datos en las plataformas Mac, Ubuntu Linux y Windows.

En este artículo se da por hecho que está familiarizado con el desarrollo mediante Python y que nunca ha usado la instancia de Azure Database for MySQL con la opción servidor flexible.

Requisitos previos

Preparación de la estación de trabajo de cliente

Instalación de Python y el conector de MySQL

Instale Python y el conector de MySQL para Python en su propio equipo de la forma siguiente:

Nota

En este inicio rápido se usa un enfoque de consulta SQL sin procesar para conectarse a MySQL. Si usa una plataforma web, utilice el conector recomendado para ella, por ejemplo, mysqlclient para Django.

  1. Descargue e instale Python 3.7 o superior para su sistema operativo. Asegúrese de agregar Python a PATH, porque el conector de MySQL lo requiere.

  2. Abra un símbolo del sistema o un shell de bash y compruebe la versión de Python mediante la ejecución de python -V con el modificador V mayúscula.

  3. El instalador de paquetes de pip se incluye en las versiones más recientes de Python. Actualice pip a la versión más reciente mediante la ejecución de pip install -U pip.

    Si pip no está instalado, puede descargarlo e instalarlo con get-pip.py. Para más información, consulte Instalación.

  4. Utilice pip para instalar el conector de MySQL para Python y sus dependencias:

    pip install mysql-connector-python
    

    También puede instalar el conector de Python para MySQL en mysql.com. Para más información sobre el conector de MySQL para Python, consulte la guía del desarrollador de Python o del conector de MySQL.

Obtención de información sobre la conexión

Obtenga la información de conexión necesaria para conectarse a Azure Database for MySQL con la opción servidor flexible en Azure Portal. Necesitará el nombre del servidor, el nombre de la base de datos y las credenciales de inicio de sesión.

  1. Inicie sesión en Azure Portal.

  2. En la barra de búsqueda del portal, busque y seleccione la instancia de Azure Database for MySQL con la opción servidor flexible que ha creado, como mydemoserver.

  3. En la página Información general del servidor, anote el nombre del servidor y el nombre de inicio de sesión del administrador del servidor. Si olvida la contraseña, puede restablecerla también en esta página.

Ejemplos de código

Ejecute los siguientes ejemplos de código de Python.

Para cada ejemplo de código de este artículo:

  1. Cree un nuevo archivo en un editor de texto.

  2. Agregue el ejemplo de código al archivo. En el código, reemplace los marcadores de posición <mydemoserver>, <myadmin>, <mypassword>y <mydatabase> por los valores de la base de datos y el servidor de MySQL.

  3. Guarde el archivo en una carpeta de proyecto con una extensión .py, como C:\pythonmysql\createtable.py o /home/username/pythonmysql/createtable.py.

  4. Para ejecutar el código, abra un símbolo del sistema o el shell de bash y luego cambie el directorio a la carpeta del proyecto, por ejemplo cd pythonmysql. Escriba el comando python createtable.py seguido del nombre de archivo, por ejemplo python, y presione Entrar.

    Nota

    En Windows, si no se encuentra python.exe, puede que tenga que agregar la ruta de acceso de Python a la variable de entorno PATH o proporcione la ruta de acceso completa a python.exe, por ejemplo C:\python27\python.exe createtable.py.

Crear una tabla e insertar datos

Use el código siguiente para conectarse al servidor y a la base de datos, crear una tabla y cargar los datos mediante una instrucción SQL INSERT.

El código importa la biblioteca mysql.connector y utiliza la función connect() para conectarse al servidor flexible mediante los argumentos de la colección de configuración. El código usa un cursor en la conexión, y el método cursor.execute() ejecuta la consulta SQL en la base de datos MySQL.

import mysql.connector
from mysql.connector import errorcode

# Obtain connection string information from the portal

config = {
  'host':'<mydemoserver>.mysql.database.azure.com',
  'user':'<myadmin>',
  'password':'<mypassword>',
  'database':'<mydatabase>'
}

# Construct connection string

try:
   conn = mysql.connector.connect(**config)
   print("Connection established")
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with the user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist")
  else:
    print(err)
else:
  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 table
cursor.execute("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
print("Finished creating table.")

# Insert some data into table
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("banana", 150))
print("Inserted",cursor.rowcount,"row(s) of data.")
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("orange", 154))
print("Inserted",cursor.rowcount,"row(s) of data.")
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("apple", 100))
print("Inserted",cursor.rowcount,"row(s) of data.")

# Cleanup
conn.commit()
cursor.close()
conn.close()
print("Done.")

Lectura de datos

Use el código siguiente para conectarse y leer los datos mediante la instrucción SQL SELECT.

El código importa la biblioteca mysql.connector y utiliza la función connect() para conectarse al servidor flexible mediante los argumentos de la colección de configuración. El código usa un cursor en la conexión, y el método cursor.execute() ejecuta la consulta SQL en la base de datos MySQL.

El código lee las filas de datos con el método fetchall(), mantiene el conjunto de resultados en una fila de colección y usa un iterador for para recorrer las filas.

import mysql.connector
from mysql.connector import errorcode

# Obtain connection string information from the portal

config = {
  'host':'<mydemoserver>.mysql.database.azure.com',
  'user':'<myadmin>',
  'password':'<mypassword>',
  'database':'<mydatabase>'
}

# Construct connection string

try:
   conn = mysql.connector.connect(**config)
   print("Connection established")
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with the user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist")
  else:
    print(err)
else:
  cursor = conn.cursor()

  # Read data
  cursor.execute("SELECT * FROM inventory;")
  rows = cursor.fetchall()
  print("Read",cursor.rowcount,"row(s) of data.")

  # 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()
  print("Done.")

Actualización de datos

Use el código siguiente para conectarse y actualizar los datos mediante la instrucción SQL UPDATE.

El código importa la biblioteca mysql.connector y utiliza la función connect() para conectarse al servidor flexible mediante los argumentos de la colección de configuración. El código usa un cursor en la conexión, y el método cursor.execute() ejecuta la consulta SQL en la base de datos MySQL.

import mysql.connector
from mysql.connector import errorcode

# Obtain connection string information from the portal

config = {
  'host':'<mydemoserver>.mysql.database.azure.com',
  'user':'<myadmin>',
  'password':'<mypassword>',
  'database':'<mydatabase>'
}

# Construct connection string

try:
   conn = mysql.connector.connect(**config)
   print("Connection established")
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with the user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist")
  else:
    print(err)
else:
  cursor = conn.cursor()

  # Update a data row in the table
  cursor.execute("UPDATE inventory SET quantity = %s WHERE name = %s;", (200, "banana"))
  print("Updated",cursor.rowcount,"row(s) of data.")

  # Cleanup
  conn.commit()
  cursor.close()
  conn.close()
  print("Done.")

Eliminación de datos

Use el código siguiente para conectarse y eliminar datos mediante la instrucción SQL DELETE.

El código importa la biblioteca mysql.connector y utiliza la función connect() para conectarse al servidor flexible mediante los argumentos de la colección de configuración. El código usa un cursor en la conexión, y el método cursor.execute() ejecuta la consulta SQL en la base de datos MySQL.

import mysql.connector
from mysql.connector import errorcode

# Obtain connection string information from the portal

config = {
  'host':'<mydemoserver>.mysql.database.azure.com',
  'user':'<myadmin>',
  'password':'<mypassword>',
  'database':'<mydatabase>'
}

# Construct connection string

try:
   conn = mysql.connector.connect(**config)
   print("Connection established.")
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with the user name or password.")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist.")
  else:
    print(err)
else:
  cursor = conn.cursor()

  # Delete a data row in the table
  cursor.execute("DELETE FROM inventory WHERE name=%(param1)s;", {'param1':"orange"})
  print("Deleted",cursor.rowcount,"row(s) of data.")

  # Cleanup
  conn.commit()
  cursor.close()
  conn.close()
  print("Done.")

Pasos siguientes