Python-ը MySQL-ին միացնելու 4 եղանակ
Python-ով MySQL տվյալների բազայի օգտագործումը պարզ է, բայց կան տարբեր եղանակներ, որոնցով դուք կարող եք դա անել: Դա օգնում է հասկանալ, թե ինչ են դրանք և ինչպես են նրանք աշխատում:
MySQL-ն ամենահայտնի հարաբերական տվյալների բազաներից մեկն է: Այն թույլ է տալիս տվյալները պահել աղյուսակներում և ստեղծել հարաբերություններ այդ աղյուսակների միջև: MySQL-ն օգտագործելու համար, որն աշխատում է որպես տվյալների բազայի սերվեր, դուք պետք է կոդ գրեք դրան միանալու համար:
Ծրագրավորման լեզուներից շատերը, ինչպիսիք են Python-ը, ապահովում են դրա աջակցությունը: Փաստորեն, Python-ում կան մի քանի մոտեցումներ, որոնք կարող եք կիրառել, որոնցից յուրաքանչյուրն ունի իր առավելությունները:
Պատրաստեք ձեր MySQL կոնֆիգուրացիան
Տվյալների բազային միանալու համար ձեզ անհրաժեշտ են հետևյալ արժեքները.
- Հոսթ. MySQL սերվերի գտնվելու վայրը, լոկալհոստը, եթե այն աշխատում եք նույն համակարգչով:
- Օգտագործող. MySQL օգտվողի անունը:
- Գաղտնաբառ՝ MySQL գաղտնաբառը:
- Տվյալների բազայի անունը. տվյալների բազայի անվանումը, որին ցանկանում եք միանալ:
Նախքան MySQL տվյալների բազան միանալը, ստեղծեք նոր գրացուցակ.
mkdir python-mysql
Ստեղծեք Python վիրտուալ միջավայր
Python վիրտուալ միջավայրը թույլ է տալիս տեղադրել փաթեթներ և գործարկել սցենարներ մեկուսացված միջավայրում: Երբ դուք ստեղծում եք վիրտուալ միջավայր, այնուհետև կարող եք տեղադրել Python-ի և Python-ի կախվածությունների տարբերակները դրա ներսում: Այսպիսով, դուք մեկուսացնում եք տարբեր տարբերակներ և խուսափում համատեղելիության խնդիրներից:
Միացեք MySQL-ին Mysqlclient-ի միջոցով
Mysqlclient դրայվերը ինտերֆեյս է MySQL տվյալների բազայի սերվերի համար, որն ապահովում է Python տվյալների բազայի սերվերի API: Գրված է Ք.
Mysqlclient-ը տեղադրելու համար վիրտուալ միջավայրում գործարկեք հետևյալ հրամանը.
pip install mysqlclient
Եթե դուք Linux մեքենայով եք, նախ տեղադրեք Python 3 և MySQL մշակման վերնագրերը և գրադարանները:
# Debian / Ubuntu
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
# Red Hat / CentOS
sudo yum install python3-devel mysql-devel
Windows-ում կարող եք տեղադրել mysqlclient՝ օգտագործելով երկուական անիվի ֆայլ: Ներբեռնեք mysqlclient ֆայլը, որը համատեղելի է ձեր հարթակի հետ Քրիստոֆ Գոլկեի ոչ պաշտոնական հավաքածուից: Այնուհետև կարող եք օգտագործել ներբեռնված անիվի ֆայլը pip-ով mysqlclient-ը տեղադրելու համար այսպես.
pip install c:\\mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl
Տեղադրման ավարտից հետո MySQL տվյալների բազան միանալու համար օգտագործեք հետևյալ կապի կոդը.
import MySQLdb
connection = MySQLdb.connect(
host="localhost",
user="<mysql_user>",
passwd="<mysql_password>",
db="<database_name>"
)
cursor = connection.cursor()
cursor.execute("select database();")
db = cursor.fetchone()
if db:
print("You're connected to database: ", db)
else:
print('Not connected.')
Այս ծրագրում դուք ունեք.
- Ներմուծված mysqlclient:
- Ստեղծել է կապի օբյեկտ՝ օգտագործելով MySQLdb.connect():
- Տվյալների տվյալների բազայի կազմաձևման մանրամասները փոխանցել է MySQLdb.connect():
- Ստեղծել է կուրսորային օբյեկտ MySQL-ի հետ փոխազդելու համար:
- Օգտագործել է կուրսորային օբյեկտը միացված MySQL տվյալների բազայի տարբերակը ստանալու համար:
Հիշեք փոխել տվյալների բազայի մանրամասները ձեր սեփականի հետ:
Միացեք MySQL-ին Mysql-connector-python-ի միջոցով
mysql-connector-python-ը պաշտոնական կապի վարորդն է, որն աջակցում է Oracle-ին: Գրված է նաև մաքուր Python-ով։
Տեղադրեք այն pip-ի միջոցով՝ այն օգտագործելու համար:
pip install mysql-connector-python
Միացեք MySQL-ին՝ օգտագործելով հետևյալ կապի կոդը։
import mysql.connector
from mysql.connector import Error
connection = mysql.connector.connect(host="localhost",
user="<mysql_user>",
passwd="<mysql_password>",
db="<database_name>")
try:
if connection.is_connected():
cursor = connection.cursor()
cursor.execute("select database();")
db = cursor.fetchone()
print("You're connected to dtabase: ", db)
except Error as e:
print("Error while connecting to MySQL", e)
finally:
if connection.is_connected():
cursor.close()
connection.close()
print("MySQL connection is closed")
Վերոնշյալ կապի կոդը անում է նույնը, ինչ անում է mysqclient կապի կոդը:
Միացման օբյեկտը ստեղծելուց հետո կարող եք ստեղծել կուրսոր, որը կարող եք օգտագործել տվյալների բազայում հարցումներ կատարելու համար:
Այս կապակցման ծրագիրը նաև օգտագործում է փորձել…բռնել բլոկը: Սխալների դասը, mysql.connector-ից, թույլ է տալիս բացահայտել բացառությունները, որոնք բարձրացվում են տվյալների շտեմարանին միանալու ժամանակ: Սա պետք է հեշտացնի վրիպազերծումը և անսարքությունների վերացումը:
Միացեք MySQL-ին, օգտագործելով PyMySQL
PyMySQL կապի դրայվերը փոխարինում է MySQLdb-ին: Այն օգտագործելու համար դուք պետք է օգտագործեք Python 3.7 կամ ավելի նոր տարբերակը, իսկ ձեր MySQL սերվերը պետք է լինի 5. 7 կամ ավելի նոր տարբերակը: Եթե դուք օգտագործում եք MariaDB, այն պետք է լինի 10.2 կամ ավելի բարձր տարբերակ: Դուք կարող եք գտնել այս պահանջները PyMySQL Github էջում:
PyMySQL-ը տեղադրելու համար գործարկեք հետևյալ հրամանը.
pip install PyMySQL
Միացեք MySQL-ին PyMySQL-ի միջոցով՝ օգտագործելով այս կոդը:
import pymysql
connection = pymysql.connect(host="localhost",
user="<mysql_user>",
password="<mysql_password>",
database="<database_name>")
try:
cursor = connection.cursor()
cursor.execute("select database();")
db = cursor.fetchone()
print("You're connected to database: ", db)
except pymysql.Error as e:
print("Error while connecting to MySQL", e)
finally:
cursor.close()
connection.close()
print("MySQL connection is closed")
Կապ հաստատելուց և կուրսորի օբյեկտը ստեղծելուց հետո կարող եք սկսել SQL հարցումներ կատարել:
Միացեք MySQL-ին, օգտագործելով aiomysql
Aiomysql կապի դրայվերը նման է PyMySQL-ի ասինխրոն տարբերակին: Այն ապահովում է մուտք դեպի MySQL տվյալների բազա asyncio շրջանակից:
Aiomysql-ն օգտագործելու համար ձեզ հարկավոր է Python 3.7+ և PyMySQL-ը տեղադրել ձեր զարգացման միջավայրում:
Գործարկեք հետևյալ հրամանը՝ asyncio-ն և aiomysql-ը տեղադրելու համար:
pip install asyncio
pip install aiomysql
Aiomysql-ով դուք կարող եք Python-ը միացնել MySQL-ին՝ օգտագործելով հիմնական կապի օբյեկտը և օգտագործելով կապի լողավազան:
Ահա մի օրինակ, որը ցույց է տալիս, թե ինչպես միանալ MySQL տվյալների բազաին՝ օգտագործելով կապի օբյեկտ:
import asyncio
import aiomysql
loop = asyncio.get_event_loop()
async def python_mysql():
connection = await aiomysql.connect(host="localhost",
user="<mysql_user>",
password="<mysql_password>",
database="<database_name>")
cur = await connection.cursor()
await cur.execute("select database();")
db = await cur.fetchone()
print("You're connected to database: ", db)
await cur.close()
connection.close()
loop.run_until_complete(python_mysql())
Ի տարբերություն տվյալների բազայի միացման օբյեկտի, կապի լողավազանը թույլ է տալիս նորից օգտագործել տվյալների բազայի կապերը: Դա անում է բաց կապերի լողավազան պահպանելով և ըստ պահանջի նշանակելով դրանք: Երբ հաճախորդը խնդրում է միացում, նրան նշանակվում է լողավազանից: Երբ հաճախորդը փակում է կապը, կապը վերադառնում է լողավազան:
Լողավազանի միջոցով միանալու հիմնական կոդը հետևյալն է.
import asyncio
import aiomysql
loop = asyncio.get_event_loop()
async def python_mysql():
pool = await aiomysql.create_pool(host="localhost",
user="<mysql_user>",
password="<mysql_password>",
database="<database_name>", loop=loop, autocommit=False)
async with pool.acquire() as connection:
cursor = await connection.cursor()
await cur.execute("select database();")
db = await cur.fetchone()
print("You're connected to database: ", db)
pool.close()
await pool.wait_closed()
loop.run_until_complete(python_mysql())
Այս ծրագիրը պետք է տպի MySQL-ի այն տարբերակը, որին միացել եք այն գործարկելիս:
Ձեր PostgreSQL տվյալների բազայի կառավարում
Այս հոդվածը ձեզ ցույց տվեց մի քանի ուղիներ, որոնցով կարող եք միացնել Python հավելվածը MySQL-ին: Այս մեթոդներից յուրաքանչյուրը թույլ է տալիս շփվել տվյալների բազայի հետ և կատարել հարցումներ:
MySQL տվյալների բազայի հետ միանալուց հետո դուք կարող եք կատարել տվյալների հարցումներ և կատարել տվյալների բազայի գործարքներ: Դուք կարող եք ստեղծել Python հավելված, այն միացնել MySQL-ին և սկսել տվյալների պահպանումը: