我在google上搜索了一段时间,但找不到关于如何从配置文件或数据库中检索Colander模式的参考资料。我认为这不难实现,但我可能忽略了一些东西。也许有人做过或看到过类似的事情,也许会分享一些见解。在
下面是一个Colander模式的示例:
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'')
滤器不支持这一点。在这个领域,我所知道的一件事是“limone”套餐,它的作用正好相反。它能够从colander模式生成任意python对象。在
正如micheal所说,它可能不受支持。如果你真的需要的话。这里有一些提示。在
按名称将架构保存在数据库中,例如:“PageSchema”。将它的所有记录与所有需要的参数一起保存在数据库中。在
你必须做这样的事情:
换句话说,它加载所有属性并使用类型运算符构建一个类。这种任务非常简单,应该和习惯的
class
语法一样好用。exec
调用只是在本地推送名称。您可以使用locals()[schema_name] = schmea
或甚至其他作用域。在这样,如果需要,可以从任何地方加载模式。你可以自己建一个工厂,比如:
schemas.get('PageSchema')
如果可能,它将返回一个模式,如果不存在则返回一个模式。在差不多了!在
ColanderAlchemy可以满足您的需要。它接受SQLAlchemy对象并从中生成Colander模式。然而,从SQLAlchemy对象生成并不完全是“从数据库”。在
相关问题 更多 >
编程相关推荐