Python предоставя няколко начина за свързване към MySQL база данни и обработка на данни. Тази статия описва три метода.
MySQL базите данни и потребителите трябва вече да съществуват, преди да можете да използвате някой от следните методи. За информация как да управлявате MySQL бази данни с помощта на cPanel, моля, вижте тази статия.Свързване с MySQL с помощта на Python
Преди да имате достъп до MySQL бази данни с помощта на Python, трябва да инсталирате един (или повече) от следните пакети във виртуална среда:
- mysqlclient :Този пакет съдържа MySQLdb модул. Написан е на C и е един от най-често използваните Python пакети за MySQL.
- mysql-connector-python :Този пакет съдържа mysql.connector модул. Написан е изцяло на Python.
- PyMySQL :Този пакет съдържа pymysql модул. Написан е изцяло на Python.
И трите от тези пакета използват API на преносима SQL база данни на Python. Това означава, че ако превключите от един модул към друг, можете да използвате повторно почти целия си съществуващ код (пробата на кода по-долу показва как да направите това).
Настройване на виртуалната среда на Python и инсталиране на MySQL пакет
За да настроите виртуалната среда на Python и да инсталирате MySQL пакет, следвайте тези стъпки:
- Влезте в акаунта си чрез SSH.
- За да създадете виртуална среда, въведете следните команди:
cd ~ virtualenv sqlenv
- virtualenv командата създава виртуална среда с име sqlenv и следващите команди в тази процедура предполагат, че средата е с име sqlenv . Можете да използвате всяко име на среда, което искате, но се уверете, че сте заменили всички срещания на sqlenv със собственото си име на средата.
- Ако използвате алтернативна версия на Python (например ръчно сте конфигурирали по-нова версия на Python за вашия акаунт, както е описано в тази статия), можете да посочите тази версия за виртуалната среда. Например, за да инсталирате конфигурирана от потребителя версия на Python 3.8 във виртуалната среда, можете да използвате следната команда:
virtualenv -p /home/username/bin/python3.8 sqlenv
-
За да активирате виртуалната среда, въведете следната команда:
source sqlenv/bin/activate
Командният ред сега започва с (sqlenv) за да посочите, че работите във виртуална среда на Python. Всички следните команди в тази процедура предполагат, че работите във виртуална среда. Ако излезете от вашата SSH сесия (или деактивирате виртуалната среда, като използвате деактивиране команда), уверете се, че сте активирали отново виртуалната среда, преди да следвате стъпките по-долу и да стартирате примерния код. -
За да актуализирате pip във виртуалната среда въведете следната команда:
pip install -U pip
-
Въведете командата за пакета, който искате да инсталирате:
- За да инсталирате mysqlclient пакет, въведете следната команда:
pip install mysqlclient
-
За да инсталирате mysql-connector-python пакет, въведете следната команда:
pip install mysql-connector-python
-
За да инсталирате pymysql пакет, въведете следната команда:
pip install pymysql
- За да инсталирате mysqlclient пакет, въведете следната команда:
Проба на код
След като инсталирате MySQL пакет във виртуалната среда, вие сте готови да работите с действителни бази данни. Следващият примерен код на Python демонстрира как да направите това, както и колко лесно е да превключвате между различните реализации на SQL пакет. Примерният код работи с Python 2.7 и Python 3.x.
Във вашия собствен код заменете потребителско име с потребителското име на базата данни MySQL, парола с потребителска парола на базата данни и dbname с името на базата данни:
#!/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()
Този пример създава поредица от Свързване обекти, които отварят една и съща база данни, използвайки различни MySQL модули. Тъй като и трите MySQL модула използват API интерфейса на преносима SQL база данни, те могат да използват кода в doQuery() функция без никакви модификации.
Когато имате Връзка обект, свързан с база данни, можете да създадете Курсор обект. Курсорът обектът ви позволява да стартирате execute() метод, който от своя страна ви позволява да изпълнявате необработени SQL изрази (в този случай SELECT заявка към таблица с име служител ).
Както можете да видите, преносимият API на SQL база данни на Python прави много лесно превключването между MySQL модули във вашия код. В примера по-горе единствените промени в кода, необходими за използване на различен модул, са импортът исвържете изявления.Повече информация
- За повече информация относно API на преносим SQL база данни на Python, моля, посетете https://www.python.org/dev/peps/pep-0249.
- За повече информация относно mysqlclient пакет, моля, посетете https://pypi.org/project/mysqlclient.
- За повече информация относно mysql-connector-python пакет, моля, посетете https://pypi.python.org/pypi/mysql-connector-python.
- За повече информация относно PyMySQL пакет, моля, посетете https://pypi.python.org/pypi/PyMySQL.