Как я могу поделиться данными конфигурации между Javascript, Python и CSS в моем приложении Django? - PullRequest
2 голосов
/ 07 декабря 2010

У меня есть Javascript, шаблоны Django, код Python и CSS, которые работают с одинаковыми данными конфигурации.Где лучшее место для его настройки?

В частности, у меня есть виджет ввода на стороне браузера в Javascript, который управляет встроенным приложением Java.Когда пользователь закончил, Javascript запрашивает у Java-апплета изображение результата, которое будет встроено в HTML.Пользователь может указать, должно ли изображение быть маленьким, средним или большим.Это изображение и выбор отправляются через вызов AJAX моему приложению Django, которое выполняет некоторую проверку ввода.Когда отображается HTML, он включает в себя мой CSS, который имеет специальную разметку [href ^ = http://internal.server], чтобы показать эти изображения не так, как другие изображения.

В то время как кто-то спросил аналогичный вопрос , ответы были либо: «использовать DSL», либо «использовать такой формат, как XML или JSON».Ни один из них не работает с CSS.

Два решения, которые я придумал:

  • помещают данные в Python и генерируют HTML-код через форму / шаблон Django.Также пусть Django динамически генерирует конфигурацию Javascript и генерирует этот CSS.

Мне это не нравится, потому что я бы предпочел статически обслуживать весь мой Javascript и CSS.

  • Представитьэтап сборки, на котором данные конфигурации применяются к шаблону для создания соответствующих файлов Javascript, HTML, CSS и Python.

, что усложняет задачу, поскольку у меня будет специальный "* .in"или такие файлы, которые создают настоящие файлы, и каждый должен следить за тем, чтобы знать, какие файлы нужно редактировать.

Что вы делаете?

Ответы [ 2 ]

4 голосов
/ 07 декабря 2010

Используйте JSON.Динамически генерируйте CSS, используя кеширование для уменьшения нагрузки.

0 голосов
/ 07 декабря 2010

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

...