Python zapewnia kilka sposobów łączenia się z bazą danych MySQL i przetwarzania danych. W tym artykule opisano trzy metody.
Bazy danych i użytkownicy MySQL muszą już istnieć, zanim będzie można użyć dowolnej z poniższych metod. Aby uzyskać informacje o tym, jak zarządzać bazami danych MySQL za pomocą cPanel, zapoznaj się z tym artykułem.Łączenie z MySQL za pomocą Pythona
Zanim będziesz mógł uzyskać dostęp do baz danych MySQL za pomocą Pythona, musisz zainstalować jeden (lub więcej) z następujących pakietów w środowisku wirtualnym:
- mysqlclient :Ten pakiet zawiera MySQLdb moduł. Jest napisany w C i jest jednym z najczęściej używanych pakietów Pythona dla MySQL.
- mysql-connector-python :Ten pakiet zawiera mysql.connector moduł. Jest napisany w całości w Pythonie.
- PyMySQL :Ten pakiet zawiera pymysql moduł. Jest napisany w całości w Pythonie.
Wszystkie trzy z tych pakietów korzystają z przenośnego interfejsu API bazy danych SQL w języku Python. Oznacza to, że jeśli przełączysz się z jednego modułu na inny, możesz ponownie wykorzystać prawie cały istniejący kod (poniższy przykładowy kod pokazuje, jak to zrobić).
Konfiguracja wirtualnego środowiska Pythona i instalacja pakietu MySQL
Aby skonfigurować środowisko wirtualne Python i zainstalować pakiet MySQL, wykonaj następujące kroki:
- Zaloguj się na swoje konto za pomocą SSH.
- Aby utworzyć środowisko wirtualne, wpisz następujące polecenia:
cd ~ virtualenv sqlenv
- Wirtualne środowisko polecenie tworzy środowisko wirtualne o nazwie sqlenv , a kolejne polecenia w tej procedurze zakładają, że środowisko ma nazwę sqlenv . Możesz użyć dowolnej nazwy środowiska, ale upewnij się, że zastąpiłeś wszystkie wystąpienia sqlenv z własną nazwą środowiska.
- Jeśli używasz alternatywnej wersji Pythona (na przykład ręcznie skonfigurowałeś nowszą wersję Pythona dla swojego konta zgodnie z opisem w tym artykule), możesz określić tę wersję dla środowiska wirtualnego. Na przykład, aby zainstalować skonfigurowaną przez użytkownika wersję Pythona 3.8 w środowisku wirtualnym, możesz użyć następującego polecenia:
virtualenv -p /home/username/bin/python3.8 sqlenv
-
Aby aktywować środowisko wirtualne, wpisz następujące polecenie:
source sqlenv/bin/activate
Wiersz polecenia zaczyna się teraz od (sqlenv) aby wskazać, że pracujesz w środowisku wirtualnym Pythona. Wszystkie poniższe polecenia w tej procedurze zakładają, że pracujesz w środowisku wirtualnym. Jeśli wylogujesz się z sesji SSH (lub dezaktywujesz środowisko wirtualne za pomocą dezaktywuj polecenie), upewnij się, że ponownie aktywowałeś środowisko wirtualne przed wykonaniem poniższych kroków i uruchomieniem przykładowego kodu. -
Aby zaktualizować pip w środowisku wirtualnym wpisz następujące polecenie:
pip install -U pip
-
Wpisz polecenie dla pakietu, który chcesz zainstalować:
- Aby zainstalować mysqlclient wpisz następujące polecenie:
pip install mysqlclient
-
Aby zainstalować mysql-connector-python pakiet, wpisz następujące polecenie:
pip install mysql-connector-python
-
Aby zainstalować pymysql pakiet, wpisz następujące polecenie:
pip install pymysql
- Aby zainstalować mysqlclient wpisz następujące polecenie:
Próbka kodu
Po zainstalowaniu pakietu MySQL w środowisku wirtualnym jesteś gotowy do pracy z rzeczywistymi bazami danych. Poniższy przykładowy kod Pythona pokazuje, jak to zrobić, a także pokazuje, jak łatwo przełączać się między różnymi implementacjami pakietów SQL. Przykładowy kod działa z Pythonem 2.7 i Pythonem 3.x.
We własnym kodzie zastąp nazwę użytkownika z nazwą użytkownika bazy danych MySQL, hasło z hasłem użytkownika bazy danych i dbname z nazwą bazy danych:
#!/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()
Ten przykład tworzy serię Połączenia obiekty, które otwierają tę samą bazę danych przy użyciu różnych modułów MySQL. Ponieważ wszystkie trzy moduły MySQL korzystają z interfejsu API przenośnej bazy danych SQL, mogą używać kodu w doQuery() działać bez żadnych modyfikacji.
Gdy masz połączenie obiekt powiązany z bazą danych, możesz utworzyć Kursor obiekt. Kursor obiekt umożliwia uruchomienie execute() metody, która z kolei umożliwia uruchamianie surowych instrukcji SQL (w tym przypadku SELECT zapytanie dotyczące tabeli o nazwie pracownik ).
Jak widać, przenośne API bazy danych SQL w Pythonie sprawia, że przełączanie się między modułami MySQL w kodzie jest bardzo łatwe. W powyższym przykładzie jedyne zmiany w kodzie konieczne do użycia innego modułu dotyczą importu i połączyć się sprawozdania.Więcej informacji
- Aby uzyskać więcej informacji na temat przenośnego interfejsu API bazy danych SQL w Pythonie, odwiedź stronę https://www.python.org/dev/peps/pep-0249.
- Więcej informacji o mysqlclient pakiet, odwiedź https://pypi.org/project/mysqlclient.
- Więcej informacji o mysql-connector-python pakiet, odwiedź https://pypi.python.org/pypi/mysql-connector-python.
- Więcej informacji o PyMySQL pakiet, odwiedź https://pypi.python.org/pypi/PyMySQL.