MariaDB یک نسخه متنباز از دیتابیس محبوب MySQL است که با رابط کاربری SQL برای دسترسی و مدیریت دادهها مورد استفاده قرار میگیرد. این دیتابیس از قابلیت اطمینان بالا و سهولت در مدیریت بهرهمند است که برای سرویسدهی به اپلیکیشنهای مدرن حیاتی است. با محبوبیت روزافزون پایتون در حوزههایی مانند هوش مصنوعی و یادگیری ماشین، MariaDB گزینه مناسبی به عنوان یک دیتابیس سرور برای پایتون محسوب میشود.
در این آموزش، یک اپلیکیشن پایتون را به یک سرور دیتابیس متصل میکنید با استفاده از ماژول MySQL connector. این ماژول امکان اجرای کوئری روی سرور دیتابیس را برای شما فراهم میکند. شما MariaDB را برای محیط پایتون روی Ubuntu 18.04 راهاندازی میکنید و یک اسکریپت پایتون خواهید نوشت که به MariaDB متصل شده و روی آن کوئری اجرا میکند.
قبل از آغاز این راهنما، به ملزومات زیر نیاز دارید:
گام ۱: ایجاد پایگاه داده و جدول در MariaDB
ابتدا ترمینال خود را باز کنید و با دستور زیر وارد shell ماریادیبی شوید:
mysql -u root -p
پس از ورود به shell ماریادیبی، prompt ترمینال شما تغییر میکند. در این آموزش، قرار است پایتون را به یک دیتابیس نمونه با نام workplace و جدولی به نام employees متصل کنید.
در ابتدا دیتابیس workplace را ایجاد کنید:
CREATE DATABASE workplace;
حالا به MariaDB بگویید که workplace دیتابیس جاری باشد:
USE workplace;
اگر خروجی زیر را دریافت کردید، یعنی هر کوئری بعد از این، در دیتابیس workplace اعمال خواهد شد:
Database changed
سپس جدول employees را ایجاد کنید:
CREATE TABLE employees (
first_name CHAR(35),
last_name CHAR(35)
);
در اسکیمای جدول، پارامترهای first_name و last_name نوع رشتهای (CHAR) دارند با حداکثر طول ۳۵ کاراکتر.
در انتها از shell ماریادیبی خارج شوید:
exit
در ترمینال، اطلاعات اعتبارسنجی ماریادیبی خود را به عنوان متغیرهای محیطی صادر کنید:
export DB_USER='yourusername' export DB_PASSWORD='yourpassword'
این روش باعث میشود نیازی نباشد اطلاعات محرمانه را مستقیماً در اسکریپت قرار دهید.
گام ۲: نصب MySQL Connector و راهاندازی پروژه پایتون
در ترمینال دستور زیر را جهت نصب Connector اجرا کنید:
pip install mysql-connector-python
پس از نصب موفقیتآمیز connector، یک فایل جدید پایتون بسازید و باز کنید:
nano database.py
فایل باز شده را با عبارات زیر شروع کنید:
import os import mysql.connector as database
در اینجا as یعنی در ادامه کد به جای mysql.connector از کلمه database استفاده میشود.
در گام بعدی، اعتبارسنجیهایی که به صورت متغیر محیطی صادر کرده بودید را به صورت متغیرهای پایتون مقداردهی کنید:
db_user = os.getenv("DB_USER")
db_password = os.getenv("DB_PASSWORD")
حال، اتصال به دیتابیس را با متد connect ایجاد کنید:
connection = database.connect(
user=db_user,
password=db_password,
host="localhost",
database="workplace"
)
در نهایت، cursor دیتابیس را با تابع cursor دریافت کنید:
cursor = connection.cursor()
گام ۳: افزودن رکورد به دیتابیس با پایتون
در این بخش با استفاده از متد execute روی cursor، داده به دیتابیس اضافه میکنید.
def add_data(first_name, last_name):
try:
statement = "INSERT INTO employees (first_name, last_name) VALUES (%s, %s)"
data = (first_name, last_name)
cursor.execute(statement, data)
connection.commit()
print("Data inserted successfully.")
except database.Error as e:
print(f"An error occurred: {e}")
به کمک بلوک try/except روی خطاها کنترل دارید و فقط هنگام خطا بلوک except اجرا میشود.
گام ۴: واکشی دادهها از دیتابیس با پایتون
جهت واکشی داده، با همان متد execute، کوئری SELECT اجرا میکنید.
def get_data(last_name):
try:
statement = "SELECT first_name, last_name FROM employees WHERE last_name = %s"
data = (last_name, )
cursor.execute(statement, data)
for row in cursor:
print(row)
except database.Error as e:
print(f"An error occurred: {e}")
گام ۵: اجرای نهایی اسکریپت و تست
در انتها اسکریپت را با نمونه دادهها اجرا کنید:
add_data("Ali", "Ahmadi")
get_data("Ahmadi")
اگر دادههای بیشتری میخواهید اضافه کنید، میتوانید تابع add_data را مجدداً فراخوانی کنید.
پس از اتمام کار با دیتابیس، اتصال را ببندید تا منابع هدر نرود:
connection.close()
در همان دایرکتوری فایل database.py، اسکریپت خود را به شکل زیر اجرا کنید:
python3 database.py
خروجی شما باید مشابه زیر باشد:
Data inserted successfully.
('Ali', 'Ahmadi')
میتوانید برای اطمینان، به محیط ماریادیبی بازگردید:
mysql -u root -p USE workplace; SELECT * FROM employees;
خروجی مشابه زیر را مشاهده خواهید کرد:
+------------+-----------+ | first_name | last_name | +------------+-----------+ | Ali | Ahmadi | +------------+-----------+
جمعبندی
شما اسکریپتی نوشتید که اطلاعات را در MariaDB ذخیره و واکشی میکند. ابتدا کتابخانههای لازم را وارد کردید، سپس با mysql-connector به دیتابیس متصل شدید و با os اعتبارسنجی را از محیط خواندید. با استفاده از cursor کوئریها را اجرا و دو تابع برای افزودن و بازیابی دادهها ایجاد کردید. با این ساختار میتوانید حذف اطلاعات را هم با تابع مشابه پیادهسازی کنید.
شما با موفقیت اتصال پایتون به MariaDB را روی اوبونتو ۱۸.۰۴ پیادهسازی کردید و این کد را میتوانید در هر پروژه دیگری بر پایه دیتابیسهای خانواده MySQL هم استفاده کنید.
از همراهی شما با پارمین کلود متشکریم.
نظرات کاربران