مدیریت حافظه و بهینه‌سازی کد در پایتون (بخش 2)

ایجاد شده توسط دکتر مصطفی جلیلی در آموزش برنامه نویسی پایتون 9 مارس 2025
اشتراک گذاری

در برنامه‌نویسی، مدیریت و تعامل با پایگاه‌های داده یکی از مهم‌ترین مهارت‌هاست. پایتون به دلیل سادگی و قابلیت‌های گسترده‌ای که دارد، انتخابی عالی برای کار با دیتابیس‌ها محسوب می‌شود. در این جزوه، یاد می‌گیریم که چگونه از پایگاه داده SQLite استفاده کنیم، به دیتابیس‌های دیگر مانند MySQL و PostgreSQL متصل شویم و از ORM با SQLAlchemy بهره ببریم.




۱. کار با SQLite در پایتون (sqlite3)


SQLite یک پایگاه داده سبک و بدون نیاز به سرور است که به‌صورت یک فایل مستقل روی سیستم ذخیره می‌شود. پایتون به‌صورت پیش‌فرض از SQLite پشتیبانی می‌کند و با استفاده از ماژول sqlite3 می‌توان به راحتی با آن کار کرد.


۱.۱. ایجاد و اتصال به دیتابیس SQLite


import sqlite3

# اتصال به دیتابیس (اگر وجود نداشته باشد، ایجاد می‌شود)
cursor = conn.cursor()
conn = sqlite3.connect("my_database.db")

۱.۲. ایجاد جدول در SQLite


cursor.execute('''CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER NOT NULL
)''')
conn.commit()

۱.۳. درج داده در جدول


cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Ali", 25))
conn.commit()

۱.۴. خواندن داده‌ها


cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)

۱.۵. به‌روزرسانی داده‌ها


cursor.execute("UPDATE users SET age = ? WHERE name = ?", (26, "Ali"))
conn.commit()

۱.۶. حذف داده‌ها


cursor.execute("DELETE FROM users WHERE name = ?", ("Ali",))
conn.commit()

۱.۷. بستن اتصال به دیتابیس


conn.close()



۲. اتصال به پایگاه‌های داده دیگر (MySQL و PostgreSQL)


برای کار با پایگاه‌های داده محبوبی مثل MySQL و PostgreSQL نیاز به نصب کتابخانه‌های مخصوص داریم.


۲.۱. اتصال به MySQL


برای اتصال به MySQL از کتابخانه mysql-connector-python استفاده می‌کنیم.


نصب کتابخانه


pip install mysql-connector-python

اتصال به MySQL


import mysql.connector
conn = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="test_db"
)
cursor = conn.cursor()

۲.۲. اتصال به PostgreSQL


برای اتصال به PostgreSQL از کتابخانه psycopg2 استفاده می‌شود.


نصب کتابخانه


pip install psycopg2

اتصال به PostgreSQL


import psycopg2
conn = psycopg2.connect(
dbname="test_db",
user="postgres",
password="password",
host="localhost"
)
cursor = conn.cursor()

۲.۳. اجرای کوئری‌ها در MySQL و PostgreSQL


دستورات SQL در MySQL و PostgreSQL مشابه SQLite اجرا می‌شوند، فقط باید از cursor.execute() استفاده کنیم. به‌عنوان مثال:


cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)

پس از انجام تغییرات:


conn.commit()
conn.close()



۳. ORM در پایتون با SQLAlchemy


ORM (Object-Relational Mapping) به ما این امکان را می‌دهد که بدون نیاز به نوشتن مستقیم کوئری‌های SQL، با دیتابیس کار کنیم. SQLAlchemy محبوب‌ترین ORM در پایتون است.


۳.۱. نصب SQLAlchemy


pip install sqlalchemy

۳.۲. تعریف مدل داده‌ای در SQLAlchemy


from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False)
age = Column(Integer, nullable=False)

۳.۳. اتصال به دیتابیس و ایجاد جداول


engine = create_engine("sqlite:///my_database.db")
Base.metadata.create_all(engine)

۳.۴. کار با داده‌ها در SQLAlchemy


Session = sessionmaker(bind=engine)
session = Session()
# افزودن یک کاربر جدید
new_user = User(name="Ali", age=25)
session.add(new_user)
session.commit()
# خواندن داده‌ها
users = session.query(User).all()
for user in users:
print(user.name, user.age)

۳.۵. به‌روزرسانی و حذف داده‌ها در SQLAlchemy


# به‌روزرسانی
user = session.query(User).filter_by(name="Ali").first()
user.age = 26
session.commit()
# حذف
session.delete(user)
session.commit()

نظرات (0)

اشتراک گذاری

این پست را با دیگران به اشتراک بگذارید

تنظیمات GDPR

When you visit any of our websites, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and manage your preferences. Please note, that blocking some types of cookies may impact your experience of the site and the services we are able to offer.