好主意/扩展Spine.Model的最佳方式

时间:2011-12-30 18:16:51

标签: python model-view-controller extending sqlobject spine.js

[背景下方] 我在后端用Python中的SQLObject建模了我的数据。现在我正在将一个SQLObject转换为一个dict,并从dict中获取所有键,然后将其导出为JSON文档(所以只是一个JavaScript数组)。我打算做一些像:

Spine.Model.extend({
    fromList: function(name, list){
        var model = Spine.Model.setup(name, list);
        return model;
    }
});

这是个好主意吗? Spine是否已经提供此功能?这是扩展Spine.Model类的最佳方法吗?

背景:

因此。我有一个Python应用程序,我已经使用Flask从GUI应用程序移植到Web应用程序。

我正在进行视图部分,并意识到使用JavaScript框架来处理数据/控制app /等会很有意义。

经过一系列的研究后我决定使用Spine(在第一次阅读时,API对我来说最有意义,另外作者写了O'Reilly的书籍JavaScript Web Applications,所以有一个不错的参考)。

由于我已经在后端建模了数据,因此我想导出该配置并使用此功能自动创建Spine模型,以便他们录制的数据始终保持同步(这种方式)如果我更改后端模型,前端会在下一页加载时自动更改。

1 个答案:

答案 0 :(得分:1)

看起来您正在考虑使用客户端JavaScript基于数据库中的模型使用python字典动态创建模型 - > JSON作为两者之间的链接表示。

这听起来很复杂,我真的没有答案。它甚至可能是不必要的复杂:),但这是你的决定。但是,我有一个替代解决方案。

为什么不动态地从Python生成Spine模型并只提供静态文件?然后你所要做的就是编写一个python程序,在JavaScript或CoffeeScript中输出脊柱模型的有效代码(如果模型经常变化或者在开发过程中根据需要变化,可能作为构建过程的一部分)。

同样,如果您没有大量的模型,这可能会不必要地复杂化,这些模型会定期更改以生成。即便如此,您可能只需要一个验证工具来验证您的后端数据是否在Spine中正确建模,并且只需手动编码所有内容。手动编码模型以包含他们需要的数据http://spinejs.com/docs/models

相当容易

真的,在脊椎模型中设置实际的“数据”就像@configure "Contact", "first_name", "last_name"一样简单现在脊柱模型有一个first_name和一个last_name ......

在你想出这个想法之前,请确保你没有穿上Complicator Gloves:)