- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以使用相同的 json_mapping 为对象提供递归映射?
示例:
person_json_mapping = api.model('Person', {
'name': fields.String(),
'date_of_birth': fields.Date(),
'parents': fields.List(fields.Nested(##person_json_mapping##))
}
如何在 self 内部使用 person_json_mapping ?
最佳答案
有一种使用 Flask_restplus 定义递归映射的方法,但有一个限制,您必须假设您的情况所需的最大递归级别。你不会想联系亚当和伊娃吧?
不要直接使用 api.model
,而是编写一个递归构建该模型的方法,在每次递归调用中递减 iteration_number 参数。
def recursive_person_mapping(iteration_number=10):
person_json_mapping = {
'name': fields.String(),
'date_of_birth': fields.Date()
}
if iteration_number:
person_json_mapping['parents'] = fields.List(fields.Nested(recursive_person_mapping(iteration_number-1)))
return api.model('Person'+str(iteration_number), person_json_mapping)
然后记得在使用编码器修饰方法时进行函数调用,如下所示:
@api.marshal_with(recursive_person_mapping())
def get(self):
...
注意圆括号!
还值得注意的是,如果您使用 swagger,则 'Person'+str(iteration_number)
是必需的。如果不添加 iteration_number ,您最终会出现递归限制溢出,从而导致内部服务器错误。除了 swagger 之外,mapper 没有它也能做得很好。
在对最大递归级别进行任意假设后,在超出递归限制时自动通知管理员可能也是一个好主意。这可能是准备数据的方法的责任,而不是编码器本身的责任。
关于python - Flask_restplus 递归 json_mapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46171375/
[使用 Python、Flask、flask_restplus、Swagger] 我正在尝试显示 schema model如下图使用flask_restplus . yml 而非 python 中的原
是否可以使用相同的 json_mapping 为对象提供递归映射? 示例: person_json_mapping = api.model('Person', { 'name': fields
好的,我在 PyCharm 中有一个具有以下结构的项目: test_ns.py内容如下: from flask_restplus import Api from flask_restplus impo
我写了一个 flask ,试图通过使用带有命名空间的蓝图来组织它,遵循这个 tutorial 我遇到了一些问题,浏览了互联网并在 1 中查看了解决方案和 2 .第一个与我所做的无关,第二个解决方案无法
我正在尝试在我的 API 中使用全局错误处理程序 (app_errorhandler),但我遇到了一些问题。我有一个错误蓝图,我将全局错误定义为: from werkzeug.exceptions i
我已经使用 swagger CLI 生成 go 代码来调用我的 flask 应用程序。 swagger codegen 将使用 flask_restplus 模型定义的 fields.Raw 类型转换
我是一名优秀的程序员,十分优秀!