【问题标题】:backbone.js models analogue in python骨干.js在python中模拟模拟
【发布时间】:2012-04-20 06:38:01
【问题描述】:

我正在开发一个项目,该项目可以作为服务器版本或独立发行版发布。它在架构上与 DB 无关,并且所有数据记录都具有 KV 形式。值是具有现有结构之一的序列化 json 数据。

我需要一些解决方案,提供非常基本的 ORM 级别来管理这些记录集,而不依赖于数据库,它可以管理 dict 和列表、跟踪更改、执行简单的验证并提供一些钩子用于将记录集与全局或本地同步存储,甚至是基于文件的存储。

backbone.js 模型非常接近我想要的,但我在 python 上找不到类似的。

【问题讨论】:

    标签: python json orm model backbone.js


    【解决方案1】:

    不确定它是否正是您想要的,但我正在开发一个实现轻量级 - ORM 类框架的项目(设计类似于 sqlalchemy,但比 sqlalchemy 轻得多。它仍然非常很多测试版,但它确实有效:http://pypi.python.org/pypi/norman/0.5.0

    否则,我建议您查看 sqlalchemy 以获得更复杂和结构化的 ORM。

    【讨论】:

    • 诺曼没事,谢谢! Alchemy 是我在其他项目中使用的好项目,但它与 SQL 关系数据库紧密相关,不适合。
    • 顺便说一句,Norman 目前只有 Python3。如果有任何需求,我会向后移植到 2.7,所以如果这是一个问题,请在跟踪器上发布问题,我会考虑向后移植它。
    • 是的,我注意到了。我已经尝试使用 3to2 工具自动向后移植,所有测试都可以,除了数据库导致 3to2 无法处理的测试本身中未处理的 py3 元类。 3to2输出很脆,我在手动清洁之前用它来定位坚硬的地方。
    • 我知道是什么导致了您所说的错误。如果您想为问题跟踪器添加补丁,我可以为您整理出难处并将其添加到代码库中。
    • 我已经做了反向移植,唯一的麻烦是带有 kwargs 的新样式 metaclesses,只是在表类声明中将 database=db 替换为 database__=db 属性并向 TableMeta.__new 添加了一些字符串 正确处理此属性。 Unvortuantly 这个解决方案需要在代码中声明不同的表。也许像小织物包裹这样的东西可以帮助解决它。
    猜你喜欢
    • 1970-01-01
    • 2013-10-14
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 2014-01-01
    • 2013-02-17
    相关资源
    最近更新 更多