问题标签 [colander]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 用于映射的漏勺模式,其中键是可变的,但值是数组
如何在滤锅中为以下形式的 JSON 定义模式?
“数据”中的键可以是任何字符串,值是数组。
目前,我有以下内容,但它并没有真正对映射可以具有的值类型施加任何限制。
描述这个的正确方式是什么?
python - 使用 Cornice 在 Pyramid 中使用 Colander 反序列化顶级列表
给定一个 POST 请求,Content-Type: application/json
以及["foo", "bar"]
如何使用 Cornice 在 Pyramid 中创建滤锅模式来反序列化它。
这就是我想出的:
它在带有香草滤锅的 CLI 中运行良好。但是,当我像这样在 Cornice 服务上使用它时:
我明白了:
有什么建议么?
谢谢!
python - 滤锅子类化 SchemaNode
我想知道是否有人可以帮助我。我正在一个新项目中探索变形和滤锅,并遵循有关子类化 SchemaNode 的文档。然而,虽然文件指出
子类可以定义以下方法和属性:preparer、validator、default、missing、name、title、description、widget和after_bind。
当我定义标题时,它似乎没有通过。这是我正在使用的一些示例代码:
但是,根据 SchemaNode 中定义的标题,当呈现表单时,该字段的标签是“Location Id”而不是“Location”。相反,如果我写:
然后一切都如我所愿,但文档似乎表明我不需要这样做,如果我这样做,如果我必须继续定义字段,那么预定义 SchemaNode 的点就会失败。
我是否遗漏了某些东西,或者正在做不应该做的事情(我怀疑情况会如此)。任何帮助深表感谢。
基思
pyramid - 奇怪的变形/滤锅行为“字符串索引必须是整数”
所以我有以下工作代码,过去几个月我一直在使用
现在这是一个基本的日期选择器,如下所示:
http://deform2demo.repoze.org/dateinput/
但是突然之间,当使用这个小部件时,我得到了错误:
python - 使用滤锅验证 PATCH 请求
编辑:我最初的问题涉及 PUT 请求,我已根据 thecoshman 提供的答案将其更改为 PATCH。
我正在使用檐口开发一个 RESTful 网络服务,我最近发现了漏勺。我的问题与 PATCH 请求有关。我现在知道 PUT 请求应该是完整的记录,但 PATCH 请求不是这样。我可以使用滤锅来验证附加到 PATCH 请求的 json 数据吗?
Colander 非常适合验证 POST 请求,因为它可以确保我的 json 中有所有正确的数据,并且还可以删除任何无关的数据。
这是我的简单模式。
这使我可以像这样保持我的视图代码简单。
schema=OrganisationSchema
验证请求和位置的 json 主体的神奇之处在于self.request.validated['organisation']
按照模式。
它也适用于我的其他验证器,可确保主键尚未使用。
但是,如果我想处理 PATCH 请求以更新fullname
ordescription
字段,则验证将失败,除非该请求还包含orgname
我不想更改的值。
什么是最好的解决方案?我是否坚持将完整和有效的记录修补到服务器,我是否定义了不同的模式或者我错过了什么?
python - 在变形/滤锅 HTML 选择字段中处理多对多关系
我在 Pyramid 框架中工作,并使用Deform包在给定滤锅方案的情况下呈现 HTML 表单。我正在努力思考如何处理具有多对多关系的模式。例如,我的 sqlalchemy 模型如下所示:
如您所见,这是一个非常简单的模型,表示产品可以属于一个或多个类别的在线商店。在我呈现的表单中,我希望有一个选择多个字段,我可以在其中选择几个不同的类别来放置产品。这是一个简单的滤锅模式:
而且,果然,我确实得到了所有字段的正确呈现,但是,类别字段似乎没有“绑定”到任何东西。如果我编辑我知道属于两个类别的产品,我希望选择字段已经突出显示这两个类别。进行更改(选择第三项)应导致数据库更改,其中 product_categories 具有给定 product_id 的三行,每行具有不同的 category_id。它可能是 TMI,但我也在使用类似于来读取/写入 appstruct。
现在,我已经看到提及(又一次使用 Mapping 来处理诸如此类的多对多关系字段,但是没有一个可靠的示例来说明如何使用它。
提前感谢任何可以伸出援助之手的人。将不胜感激。
python - 滤锅中的反序列化“无限”日期
我正在使用滤锅进行反序列化和验证 json 数据。我需要处理特殊值infinity
和-infinity
日期字段。但colander.Date
不支持这样的值。
我有输出
我的工作代码是:
我有输出
但我不确定这样做是否是个好主意。
或者我应该为日期字段定义自定义滤锅类型并使用它而不是colander.Date
?
python - 禁止未知值?
如果有效负载中的值不在架构中,我可以使用滤锅引发错误吗?因此,只允许列入白名单的字段?
这是一个示例:
html - 变形 - 将输入类型呈现为数字而不是文本
所以我的问题是我希望 Deform 渲染一个像这样的输入类型编号:
代替:
从这样的来源:
我能改变什么?
python - 允许未知值
我在反序列化 JSON 响应时使用滤锅。有一个字段配置为仅包含数字,但有时该字段的响应为 null 或非数字值,然后我的应用程序抛出无效错误。有没有办法在我的程序中处理它,为该字段提供一个默认值,比如 NA。下面是一个例子来说明这种情况:
这是一个示例:
如果代码有问题,我深表歉意,这是我第一次使用 python。希望我已经说明了情况。每当测试标记不是数字时,我想给 testMark 字段一个默认值,比如 NA。
PS这只是一个示例场景,不能在这里发布实际场景。