Python poskytuje několik způsobů, jak se připojit k databázi MySQL a zpracovávat data. Tento článek popisuje tři metody.
Než budete moci použít kteroukoli z následujících metod, musí již databáze a uživatelé MySQL existovat. Informace o tom, jak spravovat databáze MySQL pomocí cPanel, naleznete v tomto článku.Připojení k MySQL pomocí Pythonu
Než budete moci přistupovat k databázím MySQL pomocí Pythonu, musíte do virtuálního prostředí nainstalovat jeden (nebo více) z následujících balíčků:
- mysqlclient :Tento balíček obsahuje MySQLdb modul. Je napsán v C a je jedním z nejběžněji používaných balíčků Pythonu pro MySQL.
- mysql-connector-python :Tento balíček obsahuje mysql.connector modul. Je celý napsán v Pythonu.
- PyMySQL :Tento balíček obsahuje pymysql modul. Je celý napsán v Pythonu.
Všechny tři tyto balíčky používají přenosné rozhraní SQL databáze Pythonu. To znamená, že pokud přejdete z jednoho modulu na druhý, můžete znovu použít téměř veškerý svůj stávající kód (ukázka kódu níže ukazuje, jak to udělat).
Nastavení virtuálního prostředí Python a instalace balíčku MySQL
Chcete-li nastavit virtuální prostředí Python a nainstalovat balíček MySQL, postupujte takto:
- Přihlaste se ke svému účtu pomocí SSH.
- Chcete-li vytvořit virtuální prostředí, zadejte následující příkazy:
cd ~ virtualenv sqlenv
- virtuální vytvoří virtuální prostředí s názvem sqlenv a následující příkazy v tomto postupu předpokládají, že se prostředí jmenuje sqlenv . Můžete použít libovolný název prostředí, ale ujistěte se, že jste nahradili všechny výskyty sqlenv s vaším vlastním názvem prostředí.
- Pokud používáte alternativní verzi Pythonu (například jste pro svůj účet ručně nakonfigurovali novější verzi Pythonu, jak je popsáno v tomto článku), můžete tuto verzi určit pro virtuální prostředí. Chcete-li například nainstalovat uživatelem nakonfigurovanou verzi Pythonu 3.8 do virtuálního prostředí, můžete použít následující příkaz:
virtualenv -p /home/username/bin/python3.8 sqlenv
-
Chcete-li aktivovat virtuální prostředí, zadejte následující příkaz:
source sqlenv/bin/activate
Příkazový řádek nyní začíná (sqlenv) k označení, že pracujete ve virtuálním prostředí Pythonu. Všechny následující příkazy v tomto postupu předpokládají, že pracujete ve virtuálním prostředí. Pokud se odhlásíte ze své relace SSH (nebo deaktivujete virtuální prostředí pomocí deaktivovat příkaz), ujistěte se, že jste znovu aktivovali virtuální prostředí, než budete postupovat podle níže uvedených kroků a spustíte ukázkový kód. -
Chcete-li aktualizovat pip ve virtuálním prostředí zadejte následující příkaz:
pip install -U pip
-
Zadejte příkaz pro balíček, který chcete nainstalovat:
- Chcete-li nainstalovat mysqlclient balíčku, zadejte následující příkaz:
pip install mysqlclient
-
Chcete-li nainstalovat mysql-connector-python balíček, zadejte následující příkaz:
pip install mysql-connector-python
-
Chcete-li nainstalovat pymysql balíček, zadejte následující příkaz:
pip install pymysql
- Chcete-li nainstalovat mysqlclient balíčku, zadejte následující příkaz:
Ukázka kódu
Po instalaci balíčku MySQL do virtuálního prostředí jste připraveni pracovat se skutečnými databázemi. Následující ukázkový kód Pythonu ukazuje, jak to udělat, a také to, jak snadné je přepínat mezi různými implementacemi balíčků SQL. Ukázkový kód funguje s Pythonem 2.7 a Pythonem 3.x.
Ve svém vlastním kódu nahraďte uživatelské jméno s uživatelským jménem databáze MySQL, heslem s heslem uživatele databáze a název databáze s názvem databáze:
#!/usr/bin/python from __future__ import print_function hostname = 'localhost' username = 'username' password = 'password' database = 'dbname' # Simple routine to run a query on a database and print the results: def doQuery( conn ) : cur = conn.cursor() cur.execute( "SELECT fname, lname FROM employee" ) for firstname, lastname in cur.fetchall() : print( firstname, lastname ) print( "Using mysqlclient (MySQLdb):" ) import MySQLdb myConnection = MySQLdb.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close() print( "Using mysql.connector:" ) import mysql.connector myConnection = mysql.connector.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close() print( "Using pymysql:" ) import pymysql myConnection = pymysql.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close()
Tento příklad vytvoří řadu Připojení objekty, které otevírají stejnou databázi pomocí různých modulů MySQL. Protože všechny tři moduly MySQL používají rozhraní API pro přenosnou databázi SQL, mohou používat kód v doQuery() fungovat bez jakýchkoliv úprav.
Když máte Připojení objekt spojený s databází, můžete vytvořit Kurzor objekt. Kurzor objekt umožňuje spustit execute() metoda, která vám zase umožňuje spouštět nezpracované příkazy SQL (v tomto případě SELECT dotaz na tabulku s názvem zaměstnanec ).
Jak můžete vidět, přenosné API databáze SQL v Pythonu velmi usnadňuje přepínání mezi moduly MySQL ve vašem kódu. Ve výše uvedené ukázce jsou jediné změny kódu nutné k použití jiného modulu import a připojit prohlášení.Další informace
- Další informace o rozhraní API přenosné databáze SQL Python naleznete na adrese https://www.python.org/dev/peps/pep-0249.
- Další informace o mysqlclient balíček, navštivte prosím https://pypi.org/project/mysqlclient.
- Další informace o mysql-connector-python balíček, navštivte prosím https://pypi.python.org/pypi/mysql-connector-python.
- Další informace o PyMySQL balíček, navštivte prosím https://pypi.python.org/pypi/PyMySQL.