Changelog¶
1.5.0 (2026-04-15)¶
Bug fixes:
Fix setting of scoped session on
SQLAlchemyAuto(#382). Thanks @galuszkak for the PR.
Other changes:
Drop support for marshmallow 3, which is EOL.
Bump minimum version of marshmallow-sqlalchemy to 1.4.0 for the
sqlalchemyextra.
1.4.0 (2026-02-04)¶
Bug fixes:
Add missing commas in error message for
validate.FileType(#374).
Support:
Support Python 3.10-3.14 (#376).
1.3.0 (2025-01-06)¶
Support:
1.2.1 (2024-03-18)¶
Bug fixes:
Fix
Filefield when it receives an empty value (#301, apiflask/apiflask#551). Thanks @uncle-lv.Fix
validate.FileSizeto handleSpooledTemporaryFile(#300). Thanks again @uncle-lv.
1.2.0 (2024-02-05)¶
Features:
1.1.0 (2024-01-16)¶
Features:
Add type coverage (#290).
1.0.0 (2024-01-16)¶
Features:
Add field
fields.File,validate.FileType, andvalidate.FileSizefor deserializing uploaded files (#280, #282). Thanks @uncle-lv for the PRAdd field
Configfor serializing Flask configuration values (#280, #281). Thanks @greyli for the PR.
Support:
Support marshmallow-sqlalchemy>=0.29.0.
Test against Python 3.12.
Drop support for Python 3.7.
Other changes:
Backwards-incompatible: Remove
`flask_marshmallow.__version__andflask_marshmallow.__version_info__attributes (#284). Use feature detection orimportlib.metadata.version("flask-marshmallow")instead.
0.15.0 (2023-04-05)¶
Changes to supported software versions.
python3.6 or later and marshmallow>=3.0.0 are now required
Add support for python3.11
For
sqlalchemyintegration, marshmallow-sqlalchemy>=0.28.2 and flask-sqlalchemy>=3.0.0 are now required
Backwards-incompatible:
URLForandAbsoluteURLFornow do not accept parameters forflask.url_foras top-level parameters. They must always be passed in thevaluesdictionary, as explained in the v0.14.0 changelog.
Bug fixes:
Address distutils deprecation warning in Python 3.10 (#242). Thanks @GabrielLins64 for the PR.
0.14.0 (2020-09-27)¶
Add
valuesargument toURLForandAbsoluteURLForfor passing values toflask.url_for. This prevents unrelated parameters from getting passed (#52, #67). Thanks @AlrasheedA for the PR.
Deprecation:
Passing params to
flask.url_forviaURLFor’s andAbsoluteURLFor’s constructor params is deprecated. Passvaluesinstead.
# flask-marshmallow<0.14.0
class UserSchema(ma.Schema):
_links = ma.Hyperlinks(
{
"self": ma.URLFor("user_detail", id="<id>"),
}
)
# flask-marshmallow>=0.14.0
class UserSchema(ma.Schema):
_links = ma.Hyperlinks(
{
"self": ma.URLFor("user_detail", values=dict(id="<id>")),
}
)
0.13.0 (2020-06-07)¶
Bug fixes:
Fix compatibility with marshmallow-sqlalchemy<0.22.0 (#189). Thanks @PatrickRic for reporting.
Other changes:
Remove unused
flask_marshmallow.sqla.SchemaOpts.
0.12.0 (2020-04-26)¶
Breaking change:
ma.ModelSchemaandma.TableSchemaare removed, since these are deprecated upstream.
Warning
It is highly recommended that you use the newer ma.SQLAlchemySchema and ma.SQLAlchemyAutoSchema classes
instead of ModelSchema and TableSchema. See the release notes for marshmallow-sqlalchemy 0.22.0
for instructions on how to migrate.
If you need to use ModelSchema and TableSchema for the time being, you’ll need to import these directly from marshmallow_sqlalchemy.
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:////tmp/test.db"
db = SQLAlchemy(app)
ma = Marshmallow(app)
# flask-marshmallow<0.12.0
class AuthorSchema(ma.ModelSchema):
class Meta:
model = Author
# flask-marshmallow>=0.12.0 (recommended)
class AuthorSchema(ma.SQLAlchemyAutoSchema):
class Meta:
model = Author
load_instance = True
# flask-marshmallow>=0.12.0 (not recommended)
from marshmallow_sqlalchemy import ModelSchema
class AuthorSchema(ModelSchema):
class Meta:
model = Author
sql_session = db.session
Bug fixes:
0.11.0 (2020-02-09)¶
Features:
Add support for
SQLAlchemySchema,SQLAlchemyAutoSchema, andauto_fieldfrom marshmallow-sqlalchemy>=0.22.0 (#166).
Bug fixes:
Properly restrict marshmallow-sqlalchemy version based on Python version (#158).
Other changes:
Test against Python 3.8.
0.10.1 (2019-05-05)¶
Bug fixes:
marshmallow 3.0.0rc6 compatibility (#134).
0.10.0 (2019-03-09)¶
Features:
Add
ma.TableSchema(#124).SQLAlchemy requirements can be installed with
pip install 'flask-marshmallow[sqlalchemy]'.
Bug fixes:
URLFor,AbsoluteURLFor, andHyperlinkRelatedserialize toNoneif a passed attribute value isNone(#18, #68, #72). Thanks @RobinRamuel, @ocervell, and @feigner for reporting.
Support:
Test against Python 3.7.
Drop support for Python 3.4. Only Python 2.7 and >=3.5 are supported.
0.9.0 (2018-04-29)¶
Add support for marshmallow 3 beta. Thanks @SBillion for the PR.
Drop support for Python 3.3. Only Python 2.7 and >=3.4 are supported.
Updated documentation to fix example
ma.URLFortarget.
0.8.0 (2017-05-28)¶
Fix compatibility with marshmallow>=3.0.
Support:
Backwards-incompatible: Drop support for marshmallow<=2.0.0.
Test against Python 3.6.
0.7.0 (2016-06-28)¶
manyargument toSchema.jsonifydefaults to value of theSchemainstance’smanyattribute (#42). Thanks @singingwolfboy.Attach
HyperlinkRelatedtoMarshmallowinstances. Thanks @singingwolfboy for reporting.
Support:
Upgrade to invoke>=0.13.0.
Updated documentation to reference
HyperlinkRelatedinstead ofHyperlinkModelSchema. Thanks @singingwolfboy.Updated documentation links to readthedocs.io subdomain. Thanks @adamchainz.
0.6.2 (2015-09-16)¶
Fix compatibility with marshmallow>=2.0.0rc2.
Support:
Tested against Python 3.5.
0.6.1 (2015-09-06)¶
Fix compatibility with marshmallow-sqlalchemy>=0.4.0 (#25). Thanks @svenstaro for reporting.
Support:
Include docs in release tarballs.
0.6.0 (2015-05-02)¶
Features:
Add Flask-SQLAlchemy/marshmallow-sqlalchemy support via the
ModelSchemaandHyperlinkModelSchemaclasses.Schema.jsonifynow takes the same arguments asmarshmallow.Schema.dump. Additional keyword arguments are passed toflask.jsonify.Hyperlinksfield supports serializing a list of hyperlinks (#11). Thanks @royrusso for the suggestion.
Deprecation/Removal:
Remove support for
MARSHMALLOW_DATEFORMATandMARSHMALLOW_STRICTconfig options.
Other changes:
Drop support for marshmallow<1.2.0.
0.5.1 (2015-04-27)¶
Fix compatibility with marshmallow>=2.0.0.
0.5.0 (2015-03-29)¶
Backwards-incompatible: Remove
flask_marshmallow.SchemaOptsclass and remove support forMARSHMALLOW_DATEFORMATandMARSHMALLOW_STRICT(#8). Prevents aRuntimeErrorwhen instantiating aSchemaoutside of a request context.
0.4.0 (2014-12-22)¶
Backwards-incompatible: Rename
URLandAbsoluteURLtoURLForandAbsoluteURLFor, respectively, to prevent overriding marshmallow’sURLfield (#6). Thanks @svenstaro for the suggestion.Fix bug that raised an error when deserializing
HyperlinksandURLfields (#9). Thanks @raj-kesavan for reporting.
Deprecation:
Schema.jsonifyis deprecated. Useflask.jsonifyon the result ofSchema.dumpinstead.The
MARSHMALLOW_DATEFORMATandMARSHMALLOW_STRICTconfig values are deprecated. Use a baseSchemaclass instead (#8).
0.3.0 (2014-10-19)¶
Supports marshmallow >= 1.0.0-a.
0.2.0 (2014-05-12)¶
Implementation as a proper class-based Flask extension.
Serializer and fields classes are available from the
Marshmallowobject.
0.1.0 (2014-04-25)¶
First release.
Hyperlinks,URL, andAbsoluteURLfields implemented.Serializer#jsonifyimplemented.