خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

4 روش برای اتصال پایتون به MySQL

استفاده از پایگاه داده MySQL با پایتون ساده است، اما راه های مختلفی برای انجام آن وجود دارد. به درک اینکه آنها چیست و چگونه کار می کنند کمک می کند.

MySQL یکی از محبوب ترین پایگاه داده های رابطه ای است. این به شما امکان می دهد داده ها را در جداول ذخیره کنید و روابط بین آن جداول ایجاد کنید. برای استفاده از MySQL که به عنوان یک سرور پایگاه داده اجرا می شود، باید کدی را برای اتصال به آن بنویسید.

اکثر زبان های برنامه نویسی مانند پایتون از این امر پشتیبانی می کنند. در واقع، در پایتون، چندین رویکرد وجود دارد که می توانید از آنها استفاده کنید که هر کدام مزایای خاص خود را دارند.

پیکربندی MySQL خود را آماده کنید

برای اتصال به پایگاه داده به مقادیر زیر نیاز دارید:

  • میزبان: محل سرور MySQL، اگر آن را روی همان رایانه اجرا می کنید، لوکال هاست.
  • کاربر: نام کاربری MySQL.
  • رمز عبور: رمز عبور MySQL.
  • نام پایگاه داده: نام پایگاه داده ای که می خواهید به آن متصل شوید.

قبل از اتصال به پایگاه داده MySQL، یک دایرکتوری جدید ایجاد کنید:

mkdir python-mysql

یک محیط مجازی پایتون راه اندازی کنید

یک محیط مجازی پایتون به شما امکان می دهد بسته ها را نصب کنید و اسکریپت ها را در یک محیط ایزوله اجرا کنید. هنگامی که یک محیط مجازی ایجاد می کنید، سپس می توانید نسخه هایی از وابستگی های پایتون و پایتون را در آن نصب کنید. به این ترتیب، نسخه های مختلف را ایزوله می کنید و از مشکلات سازگاری جلوگیری می کنید.

با استفاده از mysqlclient به MySQL متصل شوید

درایور mysqlclient یک رابط برای سرور پایگاه داده MySQL است که API سرور پایگاه داده پایتون را فراهم می کند. به زبان سی نوشته شده است.

برای نصب mysqlclient دستور زیر را در محیط مجازی اجرا کنید:

pip install mysqlclient

اگر از یک ماشین لینوکس استفاده می کنید، ابتدا هدرها و کتابخانه های توسعه 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

در ویندوز، می توانید mysqlclient را با استفاده از یک فایل چرخ دودویی نصب کنید. فایل mysqlclient را که با پلتفرم شما سازگار است را از مجموعه غیر رسمی کریستوف گولکه دانلود کنید. سپس می توانید از فایل wheel بارگیری شده با pip برای نصب mysqlclient به صورت زیر استفاده کنید:

pip install c:\\mysqlclient‑1.3.13cp36cp36mwin_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 متصل استفاده کرد.
مطلب مرتبط:   چگونه کامپوننت های Drag and Drop را در React بسازیم

به یاد داشته باشید که جزئیات پایگاه داده را با خود تغییر دهید.

با استفاده از mysql-connector-python به MySQL متصل شوید

mysql-connector-python درایور رسمی اتصال است که توسط اوراکل پشتیبانی می شود. همچنین با پایتون خالص نوشته شده است.

برای شروع استفاده از آن، آن را از طریق پیپ نصب کنید.

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 انجام می دهد.

هنگامی که شیء اتصال را ایجاد کردید، می توانید یک مکان نما ایجاد کنید، که سپس می توانید از آن برای اجرای پرس و جو در پایگاه داده استفاده کنید.

این برنامه اتصال همچنین از بلوک try…catch استفاده می کند. کلاس Error، از mysql.connector، به شما امکان می دهد استثناهایی را که هنگام اتصال به پایگاه داده مطرح می شوند، دریافت کنید. این باید اشکال زدایی و عیب یابی را ساده کند.

با استفاده از PyMySQL به MySQL متصل شوید

درایور اتصال PyMySQL جایگزینی برای MySQLdb است. برای استفاده از آن، باید پایتون 3.7 یا جدیدتر را اجرا کنید و سرور MySQL شما باید نسخه 5. 7 یا جدیدتر باشد. اگر از MariaDB استفاده می کنید باید نسخه 10.2 یا بالاتر باشد. می توانید این الزامات را در صفحه PyMySQL Github پیدا کنید.

مطلب مرتبط:   دکوراتورهای پایتون: آنها چه هستند و چگونه می توانید از آنها استفاده کنید؟

برای نصب PyMySQL دستور زیر را اجرا کنید.

pip install PyMySQL

با استفاده از PyMySQL با استفاده از این کد به MySQL متصل شوید.

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 کنید.

با استفاده از aiomysql به MySQL متصل شوید

درایور اتصال aiomysql مانند نسخه ناهمزمان PyMySQL است. این امکان دسترسی به پایگاه داده MySQL را از چارچوب asyncio فراهم می کند.

برای استفاده از aiomysql، باید Python 3.7+ و PyMySQL را در محیط توسعه خود نصب کنید.

دستور زیر را برای نصب asyncio و aiomysql اجرا کنید.

pip install asyncio
pip install aiomysql

با aiomysql، می‌توانید پایتون را با استفاده از یک اتصال اصلی و با استفاده از یک اتصال Pool به 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())

برخلاف یک شی اتصال پایگاه داده، یک استخر اتصال به شما امکان می دهد تا از اتصالات پایگاه داده مجددا استفاده کنید. این کار را با حفظ مجموعه ای از اتصالات باز و اختصاص آنها در صورت درخواست انجام می دهد. هنگامی که یک مشتری درخواست اتصال می کند، یک اتصال از استخر به آنها اختصاص داده می شود. هنگامی که مشتری اتصال را ببندد، اتصال به استخر باز می گردد.

مطلب مرتبط:   CodeGPT چیست و آیا واقعاً می تواند کد بنویسد؟

کد اصلی برای اتصال از طریق یک استخر مانند زیر است:

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 شما

این مقاله چندین راه را به شما نشان داد که می توانید یک برنامه پایتون را به MySQL متصل کنید. هر یک از این روش‌ها به شما امکان می‌دهد تا با داده‌های داده ارتباط برقرار کرده و پرس‌وجوها را اجرا کنید.

پس از اتصال به پایگاه داده MySQL، می توانید کوئری های داده را اجرا کرده و تراکنش های پایگاه داده را انجام دهید. می توانید یک برنامه پایتون ایجاد کنید، آن را به MySQL متصل کنید و شروع به ذخیره سازی داده ها کنید.