- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否只有我一个人在为这样的问题苦苦挣扎。
让我们以字典为例:
data = {'totalSize': 3000, 'freq': 2400,
'distribution':
{'ram1': {'size': 200, 'status': 'OK'},
'ram2': {'size': 100, 'status': 'OK'}
}
}
请注意,ram1/2是动态 key ,无法提前得知
问题,我的 api.model 应该是什么样的?我有:
wild = {"*": fields.Wildcard(fields.String())}
hw_memory = api.model('Memory', {
'totalSize': fields.Integer(description='total memory size in MB',
example=1024),
'freq': fields.Integer(description='Speed of ram in mhz', example=800),
'distribution': fields.Nested(wild),
})
它正在工作,但它不会验证“分发”下方的任何内容,换句话说,它像通配符一样工作,任何内容都会被接受。有没有办法以具有通配符动态键的方式嵌套字典?
最佳答案
首先,Wildcard
类型的字段接受字典值的定义,而不是键的定义,即 fields.Wildcard(fields.String())
验证字典值只能是字符串类型(在您的情况下,您需要提供分布的定义)。
第二个错误是您将 distribution
字段定义为 Nested
对象,而不是使用 Wilcard
。
以下代码应该用于验证目的:
DISTRIBUTION_MODEL = NAMESPACE.model("Distribution", dict(
size=fields.Integer(),
status=fields.String(),
))
MEMORY_MODEL = NAMESPACE.model("Memory", dict(
totalSize=fields.Integer(description='total memory size in MB',
example=1024),
freq=fields.Integer(description='Speed of ram in mhz', example=800),
distribution=fields.Wildcard(fields.Nested(DISTRIBUTION_MODEL))
))
不幸的是,它不适用于编码(marshal)处理。下一个代码应该用于编码,但不适用于验证输入有效负载:
OUTPUT_MEMORY_MODEL = NAMESPACE.model("OutputMemory", dict(
totalSize=fields.Integer(description='total memory size in MB',
example=1024),
freq=fields.Integer(description='Speed of ram in mhz', example=800),
distribution=flask_utils.fields.Nested(
NAMESPACE.model(
"distributions", {
"*": fields.Wildcard(
# DISTRIBUTION_MODEL is taken from previous snippet
fields.Nested(DISTRIBUTION_MODEL)
)
}
)
)
))
关于python - Flask restx 模型嵌套通配符字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63391655/
我想知道是否只有我一个人在为这样的问题苦苦挣扎。 让我们以字典为例: data = {'totalSize': 3000, 'freq': 2400, 'distribution':
如何在flaskRESTX中创建一个只有一个字符串字段而没有其他属性的Enum API模型,以便在swagger.yml中生成以下描述?。也许黑客会有所帮助?因为现在您似乎可以创建仅具有属性的API模
我有一个使用 flask-restx 的 Flask 应用程序和 flask-login .我希望默认情况下所有路由都需要登录,并明确定义不需要身份验证的公共(public)路由。我已经按照这个问题中
我有一个使用 Flask-Restx 和 JWT token 身份验证的 Flask REST API,并且正在通过 postman 进行调用。但是,当我尝试使用 swagger 时,发送的 toke
正如标题所提到的,我想要一个 @api.response(401, 'Unauthenticated')响应添加到所有需要身份验证的 API 的文档中。flask-resplus/restx显示锁定图
我是一名优秀的程序员,十分优秀!