Sdílet prostřednictvím


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

V tomto rychlém startu se připojíte k flexibilnímu serveru Azure Database for MySQL pomocí Pythonu. Pak použijete příkazy 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 začínáte pracovat s flexibilním serverem Azure Database for MySQL.

Požadavky

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

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure, než začnete. V současné době můžete s bezplatným účtem Azure vyzkoušet flexibilní server Azure Database for MySQL zdarma po dobu 12 měsíců. Další informace najdete v tématu Použití bezplatného účtu Azure k vyzkoušení flexibilního serveru Azure Database for MySQL zdarma.

Příprava klientské pracovní stanice

Instalace Pythonu a konektoru MySQL

Pomocí následujícího postupu nainstalujte Python a konektor MySQL pro Python do počítače:

Poznámka:

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

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

  2. Otevřete příkazový řádek nebo bash prostředí a zkontrolujte verzi Pythonu spuštěním python -V přepínače 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 pippříkazu .

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

  4. Slouží pip k instalaci konektoru MySQL pro Python a jeho závislostí:

    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í k flexibilnímu serveru Azure Database for MySQL, z webu Azure Portal. Potřebujete název serveru, název databáze a přihlašovací údaje.

  1. Přihlaste se k portálu Azure.

  2. Na panelu hledání na portálu vyhledejte a vyberte instanci flexibilního serveru Azure Database for MySQL, kterou 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ódu

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

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

  1. Vytvořte nový soubor v textovém editoru.

  2. Přidejte do souboru příklad kódu. V kódu nahraďte <mydemoserver>hodnoty <myadmin><mypassword>serveru a <mydatabase> databáze MySQL a zástupné symboly hodnotami.

  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 bash prostředí a změňte adresář do složky projektu, například cd pythonmysql. python Zadejte příkaz následovaný názvem souboru, například python createtable.pya stiskněte Enter.

    Poznámka:

    Pokud python.exe ve Windows nenajdete, možná budete muset do proměnné prostředí PATH přidat cestu Pythonu nebo zadat úplnou cestu k 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 naimportuje knihovnu mysql.connector a pomocí funkce connect() se připojí k flexibilnímu serveru pomocí argumentů v kolekci konfigurace. Kód používá kurzor na připojení a metoda cursor.execute() provede dotaz SQL 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 naimportuje knihovnu mysql.connector a pomocí funkce connect() se připojí k flexibilnímu serveru pomocí argumentů v kolekci konfigurace. Kód používá kurzor na připojení a metoda cursor.execute() provede dotaz SQL na databázi MySQL.

Kód přečte řádky dat pomocí metody fetchall(), zachová sadu výsledků v řádku kolekce a pomocí iterátoru for přes řádky.

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 naimportuje knihovnu mysql.connector a pomocí funkce connect() se připojí k flexibilnímu serveru pomocí argumentů v kolekci konfigurace. Kód používá kurzor na připojení a metoda cursor.execute() provede dotaz SQL 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 naimportuje knihovnu mysql.connector a pomocí funkce connect() se připojí k flexibilnímu serveru pomocí argumentů v kolekci konfigurace. Kód používá kurzor na připojení a metoda cursor.execute() provede dotaz SQL 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.")