Rychlý start: Použití Pythonu k připojení a dotazování dat na Azure Database for MySQL – flexibilní server

[platí pro: Azure Database for MySQL – flexibilní Server

V tomto rychlém startu se připojíte k flexibilnímu Azure Database for MySQL serveru pomocí Pythonu. Pak použijete SQL k dotazování, vkládání, aktualizaci a odstraňování dat v databázi z platforem Mac, Ubuntu Linux a Windows.

Tento článek předpokládá, že máte zkušenosti s vývojem pomocí Pythonu, ale s flexibilním serverem pro Azure Database for MySQL novinka.

Požadavky

  • Účet Azure s aktivním předplatným.

    Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete. S bezplatným účtem Azure si teď můžete vyzkoušet Azure Database for MySQL – flexibilní server na 12 měsíců zdarma. Další podrobnosti najdete v tématu Vyzkoušejte si flexibilní server zdarma.

  • Flexibilní Azure Database for MySQL serveru. Informace o vytvoření flexibilního serveru najdete v tématu Vytvoření flexibilního Azure Database for MySQL serveru pomocí Azure Portal nebo Vytvoření flexibilního Azure Database for MySQL serveru pomocí Azure CLI.

Příprava klientské pracovní stanice

Instalace Pythonu a konektoru MySQL

Nainstalujte na počítač Python a konektor MySQL pro Python pomocí následujícího postupu:

Poznámka

V tomto rychlém startu se k SQL MySQL používá nezpracovaný přístup k dotazům na data. Pokud používáte webovou rozhraní, použijte doporučený konektor pro rozhraní, například mysqlclient pro Django.

  1. Stáhněte si a nainstalujte Python 3.7 nebo vyšší pro váš operační systém. Nezapomeňte do souboru přidat PATH Python, protože to konektor MySQL vyžaduje.

  2. Otevřete příkazový řádek nebo prostředí a zkontrolujte verzi Pythonu spuštěním přepínače bash V s python -V velkými písmeny.

  3. Instalační pip program balíčku je součástí nejnovějších verzí Pythonu. Aktualizujte pip na nejnovější verzi spuštěním . pip install -U pip

    Pokud pip není nainstalovaný, můžete ho stáhnout a nainstalovat pomocí get-pip.py . Další informace najdete v tématu Instalace .

  4. Pomocí pip nástroje nainstalujte konektor MySQL pro Python a jeho závislosti:

    pip install mysql-connector-python
    

    Konektor Pythonu pro MySQL můžete nainstalovat také z mysql.com. Další informace o konektoru MySQL pro Python najdete v příručce pro vývojáře konektoru MySQL nebo Pythonu.

Získání informací o připojení

Získejte informace o připojení, které potřebujete pro připojení Azure Database for MySQL flexibilního serveru z Azure Portal. Potřebujete název serveru, název databáze a přihlašovací údaje.

  1. Přihlaste se k webu Azure Portal.

  2. Na panelu hledání na portálu vyhledejte a vyberte soubor Azure Database for MySQL, který jste vytvořili, například mydemoserver.

  3. Na stránce Přehled serveru si poznamenejte Název serveru a Přihlašovací jméno správce serveru. Pokud heslo zapomenete, můžete ho také resetovat z této stránky.

Ukázky kódů

Spusťte níže uvedené ukázky kódu Pythonu.

Pro každý příklad kódu v tomto článku:

  1. V textovém editoru vytvořte nový soubor.

  2. Přidejte do souboru příklad kódu. V kódu nahraďte zástupné symboly , , a hodnotami <mydemoserver> pro váš server a databázi <myadmin> <mypassword> <mydatabase> MySQL.

  3. Uložte soubor do složky projektu s příponou .py, například C:\pythonmysql\createtable.py nebo /home/username/pythonmysql/createtable.py.

  4. Pokud chcete kód spustit, otevřete příkazový řádek nebo prostředí a bash změňte adresář na složku projektu, například cd pythonmysql . Zadejte příkaz python následovaný názvem souboru, například , a python createtable.py stiskněte Enter.

    Poznámka

    Pokud Windows soubor python.exe, možná budete muset přidat cestu Pythonu do proměnné prostředí PATH nebo zadat úplnou cestu k proměnnépython.exe, například C:\python27\python.exe createtable.py .

Vytvoření tabulky a vložení dat

Pomocí následujícího kódu se připojte k serveru a databázi, vytvořte tabulku a načtěte data pomocí příkazu INSERT SQL .

Kód importuje knihovnu mysql.connector a používá funkci connect() pro připojení k flexibilnímu serveru pomocí argumentů v kolekci config. Kód používá kurzor na připojení a metoda cursor.execute() SQL dotaz na databázi 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.")

Čtení dat

Pomocí následujícího kódu se připojte a načtěte data s využitím příkazu SELECT jazyka SQL.

Kód importuje knihovnu mysql.connector a používá funkci connect() pro připojení k flexibilnímu serveru pomocí argumentů v kolekci config. Kód používá kurzor na připojení a metoda cursor.execute() SQL dotaz na databázi MySQL.

Kód čte řádky dat pomocí metody fetchall(), udržuje sadu výsledků dotazu v řádku kolekce a používá iterátor ke for smyčce řádků.

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

Aktualizace dat

Pomocí následujícího kódu se připojte a aktualizujte data s využitím příkazu UPDATE jazyka SQL.

Kód importuje knihovnu mysql.connector a používá funkci connect() pro připojení k flexibilnímu serveru pomocí argumentů v kolekci config. Kód používá kurzor na připojení a metoda cursor.execute() SQL dotaz na databázi 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.")

Odstranění dat

Pomocí následujícího kódu se připojte a odeberte data s využitím příkazu DELETE jazyka SQL.

Kód importuje knihovnu mysql.connector a používá funkci connect() pro připojení k flexibilnímu serveru pomocí argumentů v kolekci config. Kód používá kurzor na připojení a metoda cursor.execute() SQL dotaz na databázi 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.")

Další kroky