SQLAlchemy ORM – Models & Tables
What is ORM?
ORM (Object Relational Mapping) lets you map:
- Database Tables → Python Classes
- Rows → Objects
Step 1: Setup Base Class
from sqlalchemy.orm import declarative_baseBase = declarative_base()
Step 2: Define a Model
from sqlalchemy import Column, Integer, Stringclass User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True)name = Column(String)email = Column(String)
What’s Happening Here?
| Code | Meaning |
|---|---|
__tablename__ | Table name |
Column | Table column |
Integer | Data type |
primary_key=True | Unique ID |
Step 3: Create Database & Tables
from sqlalchemy import create_engineengine = create_engine('sqlite:///example.db')Base.metadata.create_all(engine)
This automatically creates:
CREATE TABLE users (id INTEGER PRIMARY KEY,name VARCHAR,email VARCHAR);Step 4: Create Session
from sqlalchemy.orm import sessionmakerSession = sessionmaker(bind=engine)session = Session()Full Working Example
from sqlalchemy import Column, Integer, String, create_enginefrom sqlalchemy.orm import declarative_base, sessionmakerBase = declarative_base()class User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True)name = Column(String)email = Column(String)engine = create_engine('sqlite:///example.db')Base.metadata.create_all(engine)Session = sessionmaker(bind=engine)session = Session()Real-World Tip
Use separate files:
models.pydatabase.pymain.pyCommon Mistakes
- Forgetting
Base.metadata.create_all()- Not setting primary key
- Wrong data types
Comments
Post a Comment