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-ին և սկսել տվյալների պահպանումը: