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_base

Base = declarative_base()

Step 2: Define a Model

from sqlalchemy import Column, Integer, String

class 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
    ColumnTable column
    IntegerData type
    primary_key=TrueUnique ID

Step 3: Create Database & Tables

from sqlalchemy import create_engine

engine = 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 sessionmaker

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

Full Working Example

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

Base = 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.py
database.py
main.py

Common Mistakes

  • Forgetting Base.metadata.create_all()
  • Not setting primary key
  • Wrong data types

Comments

Popular posts from this blog

Database Integration in FastAPI (SQLAlchemy CRUD)

Middleware & CORS in FastAPI

Python Data Handling