一起实现Django模板和jQuery模板

时间:2011-07-17 01:54:22

标签: ajax json django-templates dry jquery-templates

我正在使用AJAX从服务器检索数据并在页面上显示数据的网站上工作。 Django使用其模板引擎呈现初始页面内容(因此它将被搜索引擎索引)。当用户执行操作时,jQuery通过AJAX获取新数据,并且响应以JSON的形式返回。我想让jQuery呈现这个新内容而不违反DRY Principle。因此,我想使用Django和jQuery之间“共享”的模板引擎。我一直在试图寻找最佳解决方案,但似乎总是碰到路障。

这已经完成了吗?以下是我想到的选项:

  • 使用正则表达式将Django模板转换为正确的jQuery模板语法,并以原始形式将其呈现给页面。然后jQuery将把它拿起并用它来呈现新数据。
  • 扩展jQuery模板引擎以识别Django模板语法,再次将原始Django模板呈现给jQuery使用的页面。

之前是否成功完成了?无论哪种方式,除了最简单的Django模板之外,似乎都有很多工作,因为需要考虑过多的Django标签和过滤器。

2 个答案:

答案 0 :(得分:1)

最好的办法是选择一种既支持Javascript又支持Python的模板语言,并在任何地方使用。

据我所知,Mustache是你最好的选择。

答案 1 :(得分:0)

自从我提出这个问题以来,我还没有找到完美的解决方案,但为了开发时间,我在AJAX响应中使用了JSON和HTML。这样django模板仍然可以执行HTML生成,但javascript仍然可以自由使用数据而无需解析HTML。

我通过网络发送大约两倍的数据,但是我将继续使用它,直到我的应用程序增长到较小的响应有益的程度。那时我可能会像Rob提到的那样看待像Mustache这样的东西。