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

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

[背景如下] 我在后端用 Python 的 SQLObject 建模了数据。现在,我正在将 SQLObject 转换为字典,并从字典中获取所有键,然后将其导出为 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 应用程序。

我正在做 View 部分,并意识到使用 JavaScript 框架来操作数据/控制应用程序/等会很有意义。

经过大量研究后,我选择了 Spine(第一次阅读时,该 API 对我来说最有意义,而且作者写了 O'Reilly 的《JavaScript Web 应用程序》一书,因此有一个不错的引用)。

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

最佳答案

看起来您正在考虑使用客户端 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 ,在你提出这个想法之前:)

关于python - 好主意/扩展 Spine.Model 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8682585/

相关文章:

python - 构造函数中的 Magic Mock 函数

python - 跟进术语,寻找行动项目

ajax - 隐藏字段 "ufprt"被添加到 Razor Umbraco 表单 - 为什么?

javascript - 当参数为 'view' 时,Angularjs 的函数不会触发

c++ - Qt 扩展我自己的小部件

python - 查找过程如何在 python 中工作

c# - 对在存储库模式中使用构造函数感到困惑

c++ - Python 和动态扩展 C++ 类

java - 可序列化类中包含的对象类型枚举的序列化

python - Jenkins:将我的 Python 模块放在 PYTHONPATH 上