flask web整合Marshmallow进行数据序列化

前面有系列文章。


项目整合模块:代码在后文附上

flask_marshmallow 附上官方文档地址:地址

一.基本使用:

安装:

pip install -U flask-sqlalchemy marshmallow-sqlalchemy

marshmallow是一个用来将复杂的orm对象与python原生数据类型之间相互转换的库,简而言之,就是实现object -> dict,objects -> list, string -> dict 和string -> list。

Flask-Marshmallow包含用于集成的有用附加功能Flask-SQLAlchemy和 marshmallow-sqlalchemy。要启用SQLAlchemy集成,请确保同时安装了Flask-SQLAlchemy和marshmallow-sqlalchemy。

注意 Flask-SQLAlchemy必须实例化 Flask-Marshmallow前面

from flask_marshmallow import Marshmallow

ma = Marshmallow()

定义schema:


schema

进行数据序列化和反序列化


数据解析

定义自己的自定义字段,继承marshmallow的字段,重写_serialize和_deserialize方法


schema


自定义字段

使用:

userSchema  = UserSchema()

单个对象

反序列化 userSchema.load(u)

序列化 userSchema.dump(u)

多个对象列表,设置many=True

反序列化 userSchema.load(u,many=True)

序列化 userSchema.dump(u,many=True)



以上就是基本用法,一般的web的项目就是用这几个模块了。由于接触flask才一个月,又接触的东西有点杂,不知道啥时候是个头,就当作记录学习经历了,持续输出,才能没有忘得太快。

附上代码:https://github.com/JUN-ZZ/flask-app。代码

你可能感兴趣的:(flask web整合Marshmallow进行数据序列化)