【发布时间】:2020-06-17 10:52:59
【问题描述】:
我正在使用 Flask、SQLAlchemy 和 Marshmallow 制作 API。
模型被定义,数据库被数据填充,当视图被点击时。我从 NonProfitSchema 获取所有字段 JSON 内容。
class NonprofitSchema(ma.ModelSchema):
class Meta:
model = Nonprofit
# To specialize fields something like so
fields = ('id', 'name', 'ein', 'ico', 'street', 'city', 'state', 'zipcode', 'group', 'subsection', 'affiliation', 'classification', 'ruling',
'deductability', 'foundation', 'activity', 'organization', 'status', 'tax_period', 'asset_cd','income_cd', 'filing_req_cd', 'pf_filing_req_cd',
'acct_pd', 'asset_amt', 'income_amt', 'revenue_amt', 'ntee', 'sort_name', 'activity_full')
我试图从中创建一个新架构,并仅返回数据的子集,如下所示
class AddressSchema(NonProfitSchema):
from marshmallow import fields
address = fields.Nested(NonprofitSchema(only=("street", "city", "state", "zipcode",)))
我的 view.py 中的路线是这样设置的:
@api_blueprint.route("/api/orgs/id/<int:id>/", methods=["GET"]) def get_org_by_id(id):
org = Nonprofit.query.get(id)
return npschema.jsonify(org)
@api_blueprint.route("/api/orgs/address/<int:id>/", methods=["GET"]) def get_org_by_id_address(id):
org = Nonprofit.query.get(id)
return addyschema.jsonify(org)
但是,在浏览器中访问它们时。它们都返回完全相同的东西,即NonprofitSchema的整个数据库模型
我认为不可能使用 Schema 处理数据子集,对吧?
【问题讨论】:
-
您应该指定您使用的棉花糖版本。
标签: python flask sqlalchemy marshmallow