API Reference

marshmallow_sqlalchemy.fields_for_model =func(...)
marshmallow_sqlalchemy.property2field =func(...)
marshmallow_sqlalchemy.column2field =func(...)
marshmallow_sqlalchemy.field_for =func(...)
class marshmallow_sqlalchemy.TableSchema(*, only=None, exclude=(), many=False, context=None, load_only=(), dump_only=(), partial=False, unknown=None)[source]

Base class for SQLAlchemy model-based Schemas.

Example:

from marshmallow_sqlalchemy import TableSchema
from mymodels import engine, users

class UserSchema(TableSchema):
    class Meta:
        table = users

schema = UserSchema()

select = users.select().limit(1)
user = engine.execute(select).fetchone()
serialized = schema.dump(user).data
OPTIONS_CLASS

alias of TableSchemaOpts

class marshmallow_sqlalchemy.ModelSchema(*args, **kwargs)[source]

Base class for SQLAlchemy model-based Schemas.

Example:

from marshmallow_sqlalchemy import ModelSchema
from mymodels import User, session

class UserSchema(ModelSchema):
    class Meta:
        model = User

schema = UserSchema()

user = schema.load({'name': 'Bill'}, session=session)
existing_user = schema.load({'name': 'Bill'}, instance=User.query.first())
Parameters
  • session – Optional SQLAlchemy session; may be overridden in load.

  • instance – Optional existing instance to modify; may be overridden in load.

OPTIONS_CLASS

alias of ModelSchemaOpts

get_instance(data)[source]

Retrieve an existing record by primary key(s). If the schema instance is transient, return None.

Parameters

data – Serialized data to inform lookup.

load(data, session=None, instance=None, transient=False, *args, **kwargs)[source]

Deserialize data to internal representation.

Parameters
  • session – Optional SQLAlchemy session.

  • instance – Optional existing instance to modify.

  • transient – Optional switch to allow transient instantiation.

make_instance(data, **kwargs)[source]

Deserialize data to an instance of the model. Update an existing row if specified in self.instance or loaded by primary key(s) in the data; else create a new row.

Parameters

data – Data to deserialize.

validate(data, session=None, *args, **kwargs)[source]

Validate data against the schema, returning a dictionary of validation errors.

Parameters
  • data (dict) – The data to validate.

  • many (bool) – Whether to validate data as a collection. If None, the value for self.many is used.

  • partial (bool|tuple) – Whether to ignore missing fields and not require any fields declared. Propagates down to Nested fields as well. If its value is an iterable, only missing fields listed in that iterable will be ignored. Use dot delimiters to specify nested fields.

Returns

A dictionary of validation errors.

Return type

dict

New in version 1.1.0.

class marshmallow_sqlalchemy.TableSchemaOpts(meta, *args, **kwargs)[source]

Options class for TableSchema. Adds the following options:

  • table: The SQLAlchemy table to generate the Schema from (required).

  • model_converter: ModelConverter class to use for converting the SQLAlchemy table to

    marshmallow fields.

  • include_fk: Whether to include foreign fields; defaults to False.

class marshmallow_sqlalchemy.ModelSchemaOpts(meta, *args, **kwargs)[source]

Options class for ModelSchema. Adds the following options:

  • model: The SQLAlchemy model to generate the Schema from (required).

  • sqla_session: SQLAlchemy session to be used for deserialization. This is optional; you

    can also pass a session to the Schema’s load method.

  • model_converter: ModelConverter class to use for converting the SQLAlchemy model to

    marshmallow fields.

  • include_fk: Whether to include foreign fields; defaults to False.

  • transient: Whether load model instances in a transient state (effectively ignoring

    the session).

class marshmallow_sqlalchemy.ModelConverter(schema_cls=None)[source]

Class that converts a SQLAlchemy model into a dictionary of corresponding marshmallow Fields.

exception marshmallow_sqlalchemy.ModelConversionError[source]

Raised when an error occurs in converting a SQLAlchemy construct to a marshmallow object.