gpt4 book ai didi

python - 从配置文件或数据库中读取 Colander Schema

转载 作者:太空宇宙 更新时间:2023-11-04 06:26:20 24 4
gpt4 key购买 nike

我在谷歌上搜索了一段时间,但找不到有关如何从配置文件或数据库中检索 Colander Schema 的引用资料。我认为这并不难实现,但我可能忽略了一些事情。也许有人已经做过或看到过类似的事情,并且可能会分享一些见解。

这里是 Colander Schema 的示例:

class PageSchema(colander.MappingSchema):
title = SchemaNode(String(),
title='Page title',
description='The title of the page',
)
description = SchemaNode(String(),
title='A short description',
description='Keep it under 60 characters or so',
missing = u'',
validator=colander.Length(max=79)
)
body = colander.SchemaNode(colander.String(),
description='Tell the world',
missing = u'')

最佳答案

正如 micheal 所说,它可能不受支持。如果你真的需要它。这里有一些建议。

按名称将您的架构保存在数据库中,例如:“PageSchema”。使用所有需要的参数将其所有记录保存在数据库中。

你必须这样做:

for row in rows:
attrinbutes[row['name']] = build_attribute(row)

schemas[schema_name] = type(schema_name, (colander.MappingSchema,), attributes)
exec('%s = schemas[schema_name]' % schema_name)

换句话说,它加载所有属性并使用类型运算符构建一个类。这种任务非常简单,应该和习惯的 class 语法一样好用。 exec 调用只是将名称推送到本地。您可能会使用 locals()[schema_name] = schmea 甚至其他范围。

这样您就可以根据需要从任何地方加载模式。你可以像这样建立自己的工厂:

  • schemas.get('PageSchema') 如果可能则返回架构,如果不存在则返回 None。

差不多就是这些了!

关于python - 从配置文件或数据库中读取 Colander Schema,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7777666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com