Хорошая идея / Лучший способ расширить Spine.Model - PullRequest
1 голос
/ 30 декабря 2011

[фон ниже] Мои данные смоделированы в SQLObject на Python на серверной части.Прямо сейчас я конвертирую 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.

Я дошел до того, что я делаю часть представления и понял, что это сделаетмного смысла использовать JavaScript-фреймворк для манипулирования данными / управления приложением / и т.д.

После нескольких исследований я остановился на Spine (API был наиболее полезен для меня при первом чтении, плюс автор написал книгу о веб-приложениях O'Reilly для JavaScript, поэтому есть достойная ссылка).

Поскольку я уже смоделировал свои данные на бэкэнде, я хотел бы экспортировать эту конфигурацию и автоматизировать создание моделей Spine, используя это, чтобы данные, которые они записывают, всегда были синхронизированы(таким образом, если я изменю свою внутреннюю модель, внешний интерфейс автоматически изменится при загрузке следующей страницы).

1 Ответ

1 голос
/ 07 января 2012

Похоже, вы думаете о динамическом создании моделей с использованием клиентского JavaScript на основе модели в вашей базе данных со словарем Python -> JSON в качестве связующего представления между ними.

Это звучит сложно, и у меня действительно нет ответа. Это может быть даже излишне сложно :), но это решать вам. У меня, однако, есть альтернативное решение.

Почему бы не генерировать модели Spine из Python динамически и просто обслуживать статические файлы? Затем все, что вам нужно сделать, это написать программу на python, которая выводит действительный код для модели позвоночника в JavaScript или CoffeeScript (возможно, как часть вашего процесса сборки, если модели изменяются часто или просто по мере необходимости во время разработки).

Опять же, это может быть излишне сложно, если у вас нет БОЛЬШОГО количества моделей, которые регулярно меняются для генерации. Даже тогда, возможно, все, что вам нужно, - это инструмент проверки, который проверяет, что ваши данные бэкэнда правильно смоделированы в Spine, и просто пишите все вручную. Код модели достаточно легко передать, чтобы он содержал необходимые данные http://spinejs.com/docs/models

На самом деле, установка фактических «данных» в модели позвоночника так же проста, как и @configure "Contact", "first_name", "last_name" Теперь модель позвоночника имеет имя_имя и фамилия ...

Удостоверьтесь, что вы не надели Перчатки для усложнения , прежде чем прийти к этой идее:)

...