使用 Flask-Restful 的字段,如何获得 "catchall" 字段?
Using Flask-Restful's fields, how do I have a "catchall" field?
我正在使用 Flask-Restful。我想要一个结构化的编组,但有一个可以包含任何其他有效 JSON 数据的任意字段。
例如,假设我有一个针对 'name' 和 'birth_date' 用户的资源,还有一个包含任意 JSON 的 'preferences' 字段:
from flask_restful import Resource, marshal_with, fields
import datetime
class MyResource(Resource):
resource_fields = {
'name': fields.String,
'birth_date': fields.DateTime,
'preferences': fields.GeneralJson
}
@marshal_with(resource_fields)
def get(self):
return {'name': 'Newbie Newborn',
'birth_date': datetime.datetime.now(),
'preferences': {
'wine': 'cab-sav',
'cheese': 'cheddar',
'favorite_movies': ['The Big Lebowski', 'Anchorman']}
}
这个问题当然是 fields.GeneralJson
不存在。我应该如何使用 Flask-Restful 定义 JSON 模式的 "schema-less" 部分?
啊哈。您可以只使用 fields.Raw
.
我正在使用 Flask-Restful。我想要一个结构化的编组,但有一个可以包含任何其他有效 JSON 数据的任意字段。
例如,假设我有一个针对 'name' 和 'birth_date' 用户的资源,还有一个包含任意 JSON 的 'preferences' 字段:
from flask_restful import Resource, marshal_with, fields
import datetime
class MyResource(Resource):
resource_fields = {
'name': fields.String,
'birth_date': fields.DateTime,
'preferences': fields.GeneralJson
}
@marshal_with(resource_fields)
def get(self):
return {'name': 'Newbie Newborn',
'birth_date': datetime.datetime.now(),
'preferences': {
'wine': 'cab-sav',
'cheese': 'cheddar',
'favorite_movies': ['The Big Lebowski', 'Anchorman']}
}
这个问题当然是 fields.GeneralJson
不存在。我应该如何使用 Flask-Restful 定义 JSON 模式的 "schema-less" 部分?
啊哈。您可以只使用 fields.Raw
.