SQLAlchemy Serializer

1.6.2 · active · verified Fri Apr 17

SQLAlchemy Serializer (sqlalchemy-serializer) is a mixin for SQLAlchemy models that simplifies their serialization into dictionaries or JSON, often used in API contexts. It handles relationships, allows field exclusion/inclusion, and supports nested serialization. The current version is 1.6.2, and it typically sees regular maintenance releases.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to apply `SerializerMixin` to an SQLAlchemy model and use its `to_dict()` method for basic serialization. It sets up an in-memory SQLite database, creates a simple User model, adds a user, and then serializes it, showing how to include only specific fields.

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

Base = declarative_base()

class User(Base, SerializerMixin):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    email = Column(String)

    def __repr__(self):
        return f"<User(id={self.id}, name='{self.name}')>"

engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()

user = User(name='Alice', email='alice@example.com')
session.add(user)
session.commit()

# Serialize to dictionary
user_dict = user.to_dict()
print("Serialized User:", user_dict)

# Serialize with specific fields
user_name_only = user.to_dict(only=('name',))
print("User name only:", user_name_only)

session.close()

view raw JSON →