如何在 Django 应用程序中的 Javascript、Python 和 CSS 之间共享配置数据?

发布于 2024-10-06 13:31:44 字数 931 浏览 7 评论 0原文

我有 Javascript、Django 模板、Python 代码和 CSS,它们都使用相同的配置数据。最好的配置位置在哪里?

具体来说,我有一个 Javascript 中的浏览器端条目小部件,它控制嵌入式 Java 应用程序。当用户完成后,Javascript 向 Java 小程序请求结果图像,该图像将嵌入到 HTML 中。用户可以指定图像应该是小、中还是大。该图像和选择通过 AJAX 调用发送到我的 Django 应用程序,该应用程序会执行一些输入验证。当显示 HTML 时,它包含我的 CSS,它具有特殊的 a[href^=http://internal.server] 标记以与其他图像不同的方式显示这些图像。

有人问了类似问题 ,答案是:“使用 DSL”或“使用 XML 或 JSON 等格式”。两者都不能与 CSS 一起使用。

我提出的两个解决方案是:

  • 将数据放入 Python 中并让它通过 Django 表单/模板生成 HTML。还可以让 Django 动态生成 Javascript 配置并生成 CSS。

我不喜欢这样,因为我宁愿静态地提供所有 Javascript 和 CSS。

  • 引入一个构建步骤,其中将配置数据应用于模板以构建相应的 Javascript、HTML、CSS 和 Python 文件。

这使事情变得更加复杂,因为我将有特殊的“*.in”或此类文件来构建实际文件,每个人都必须注意他们知道哪些文件是要编辑的文件。

你做什么工作?

I have Javascript, Django templates, Python code, and CSS which all work with the same configuration data. Where's the best place to configure it?

Specifically, I have a browser-side entry widget in Javascript which controls an embedded Java app. When the user is done, the Javascript asks the Java applet for an image of the result, which will be embeded in the HTML. The user can specify if the image should be small, medium, or large. That image and the choice are sent via an AJAX call to my Django app, which does some input validation. When the HTML is displayed it includes my CSS, which has special a[href^=http://internal.server] markup to show those images in a different way than other images.

While someone asked a similar question, the answers were either: "use a DSL" or "use a format like XML or JSON." Neither of which work with CSS.

The two solutions I came up with are:

  • put the data in Python and have it generate the HTML through a Django form/template. Also have Django dynamically generate the Javascript configuration and generate that CSS.

I don't like this because I would rather serve all my Javascript and CSS statically.

  • Introduce a build step where configuration data gets applied to a template to build the respective Javascript, HTML, CSS, and Python files.

Which makes things more complicated because I'll have special "*.in" or such files which build the actual files, and everyone will have to watch out that they know which files are the ones to edit.

What do you do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ヅ她的身影、若隐若现 2024-10-13 13:31:44

使用 JSON。动态生成 CSS,使用缓存来减少负载。

Use JSON. Generate the CSS dynamically, using caching to reduce load.

风筝有风,海豚有海 2024-10-13 13:31:44

我认为一个非常好的方法是通过使用某种编码约定布置的 JSON 数据结构来有效地间接表达 DSL,再加上一个单独的构建步骤来创建所需的配置文件。如果此构建步骤的工具是用 Python 编写的,那么创建、维护和增强它或它们应该相对容易。

I think an really good approach would be to effectively have a DSL expressed indirectly via JSON data structures laid out using some sort of coding convention, coupled with a separate build step that used that to create the configuration files needed. If the tool(s) for this build step were written in Python, creating, maintaining, and enhancing it or them ought to be relatively easy.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文