ORM ও SQLAlchemy

🐍 Python ORM ও SQLAlchemy – সম্পূর্ণ গাইড

Python অ্যাপ্লিকেশনে ডাটাবেস ব্যবহার করার সময় আমরা সাধারণত SQL Query লিখে কাজ করি। কিন্তু বড় প্রজেক্টে এটি জটিল ও error-prone হয়ে যায়। এই সমস্যার সমাধানই হলো ORM (Object Relational Mapping)

📌 ORM কী?

ORM এমন একটি টেকনোলজি যা ডাটাবেস টেবিলকে Python Class হিসেবে ব্যবহার করতে দেয়। ফলে আমরা SQL না লিখেই Python code দিয়ে ডাটাবেস অপারেশন করতে পারি।

🧠 সহজভাবে বুঝলে:

  • Database Table → Python Class
  • Table Row → Python Object
  • Column → Class Attribute

📌 SQLAlchemy কী?

SQLAlchemy হলো Python-এর সবচেয়ে জনপ্রিয় ORM লাইব্রেরি। এটি দুইভাবে কাজ করে:

  • Core – SQL Expression ভিত্তিক
  • ORM – Class ও Object ভিত্তিক

📌 SQLAlchemy ইনস্টল করা

pip install sqlalchemy
  

📌 Database Connection তৈরি করা

from sqlalchemy import create_engine

engine = create_engine("sqlite:///test.db", echo=True)
  

এখানে test.db নামে একটি SQLite ডাটাবেস তৈরি হবে। echo=True দিলে SQL query গুলো console-এ দেখা যায়।

📌 Declarative Base ও Model তৈরি

from sqlalchemy.orm import declarative_base
from sqlalchemy import Column, Integer, String

Base = declarative_base()

class User(Base):
    __tablename__ = "users"

    id = Column(Integer, primary_key=True)
    name = Column(String)
    email = Column(String)
  

এখানে User ক্লাসটি ডাটাবেসের users টেবিলকে রিপ্রেজেন্ট করছে।

📌 Table তৈরি করা

Base.metadata.create_all(engine)
  

এই কোড রান করলে users টেবিল ডাটাবেসে তৈরি হবে।

📌 Session কী?

Session হলো ডাটাবেসের সাথে আমাদের কাজ করার একটি মাধ্যম। সব CRUD অপারেশন session দিয়েই হয়।

from sqlalchemy.orm import sessionmaker

Session = sessionmaker(bind=engine)
session = Session()
  

📌 Data Insert করা

user1 = User(name="Rahim", email="rahim@gmail.com")
session.add(user1)
session.commit()
  

📤 Output:

users টেবিলে একটি নতুন row insert হবে।

📌 Data Read (SELECT)

users = session.query(User).all()

for user in users:
    print(user.name, user.email)
  

📤 Output:

Rahim rahim@gmail.com
    

📌 Data Update করা

user = session.query(User).filter_by(name="Rahim").first()
user.email = "rahim_new@gmail.com"
session.commit()
  

📤 Output:

Rahim এর email update হবে।

📌 Data Delete করা

user = session.query(User).filter_by(name="Rahim").first()
session.delete(user)
session.commit()
  

📤 Output:

Rahim নামের user ডাটাবেস থেকে delete হবে।

🌟 SQLAlchemy ORM এর সুবিধা

  • SQL না লিখেও ডাটাবেস অপারেশন
  • Code readable ও maintainable
  • SQL Injection থেকে সুরক্ষা
  • Multiple database support

✅ সংক্ষেপে

Python ORM এবং SQLAlchemy ব্যবহার করলে ডাটাবেসের সাথে কাজ করা হয় সহজ, নিরাপদ এবং প্রফেশনাল। Backend Developer হওয়ার জন্য এটি অবশ্যই শেখা উচিত।

👼 Quiz
/

লোড হচ্ছে...

Interview Questions:

1. ORM কী?

ORM (Object Relational Mapping) হলো ডাটাবেজ টেবিলকে Python ক্লাস হিসেবে ব্যবহার করার পদ্ধতি।

2. SQLAlchemy কেন ব্যবহার করা হয়?

SQLAlchemy ব্যবহার করে raw SQL ছাড়াই ডাটাবেজ অপারেশন করা যায় এবং কোড আরও পরিষ্কার হয়।

3. ORM ব্যবহারের একটি সুবিধা কী?

ORM ডাটাবেজ পরিবর্তন হলেও কোড কম পরিবর্তন করতে হয়।