我正在使用Flask,Flask-SqlAlchemy,Flask-Marshmallow和Marshmallow-SqlAlchemy等框架来构建应用程序。例如,我有以下模型和架构类。我需要选择某些字段从序列化为JSON。我该如何实现?
型号:
class AsmStore(Model):
__tablename__ = "asmstore"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255))
storelatitude = db.Column(db.String(255))
storelongitude = db.Column(db.String(255))
territoryid = db.Column(
db.Integer, db.ForeignKey("territory.id"), nullable=False
)
架构类:
class AsmStoreSchema(ma.ModelSchema):
class Meta:
model = AsmStore
我做了一些搜索,并尝试了以下方法,但是使用这种方法,当说AsmStoreSchema嵌套在另一个架构类中时,序列化将不起作用。
class AsmStoreSchema(ma.Schema):
class Meta:
fields = ("storelatitude", "storelongitude")
我今天尝试过此方法,它确实有效。尽管可以确认这将是很棒,但这是正确的方法。
除了继承自ModelSchema并在Meta类中指定模型外,我还指定了要序列化的字段。以下是一些示例:
class AsmStoreSchema(ma.ModelSchema):
class Meta:
model = AsmStore
fields = ("storelatitude", "storelongitude")
class TerritorySchema(ma.ModelSchema):
class Meta:
model = Territory
fields = ("id", "centrallatitude", "storelist")