Django和客户端JavaScript模板

Cod*_*tch 31 javascript django client-side-templating

介绍

我目前正在编写一个非常标准的基于Django的应用程序(基本上是一个花哨的CRM /联系人列表).它有点工作,但随着我不断尝试使用越来越多的AJAXy UI代码(使用jQuery)来改进界面,它开始变得非常痛苦.我得到了很长的脆弱的jQuery事件处理程序块,它们解析DOM,将更改推送回服务器,获取一些JSON,并尝试基于此更新DOM.

我觉得,至少,我可能想要添加一些客户端模板.或者,我可以尝试切换到JS框架,并使用我的Django应用程序作为数据库抽象层.或者即使我知道并喜欢Python,我也可以放弃Django应用程序,并尝试使用JS/Node.js解决方案.

有没有其他人处于这种情况?你是怎么解决的?

设计目标

  1. 干:我不想复制我的模型或我的模板(或至少,不仅仅是必要的).
  2. 我希望访问者登陆页面以获得结果rendereed服务器端.
  3. 当访问者点击某些东西时,我想通过客户端模板和渲染来处理它,并通过AJAX调用将服务器更新到REST接口.

那么......我该怎么做?我收集了一些框架和模板系统的链接.没有特别的顺序:

dust.js:

这显然是LinkedIn用来解决类似的问题.它在服务器端使用Node.js并不理想(我从未使用过Node),但至少它不是基于JVM的.它似乎在github上处于休眠状态 - 我发现了人们一直想知道维护者去哪里的邮件列表.听起来确实不错 - 来自LinkedIn的博客文章很好地销售这项技术,尤其是编译它的能力.但它似乎只是模板化.这足以满足我的需求吗?

小胡子:

这个选项有Python和JS实现,看起来很受欢迎......但是我找不到任何似乎在使用Django的Mustache模板的人.这是因为它太容易得到博客文章,还是不可能或不可取的?它也非常有限; 至少我可能需要转向某种MVC JS框架,对吧?

Backbone,Spine,KnockoutJS,EmberJS,JavascriptMVC等:

有这么多的框架令人望而生畏.乍一看,所有这些看起来都非常好.如果我走这条路,似乎我需要重写我的应用程序,我真的很想找到一个已经做过类似事情的人.而且,如果有一个明确的选择来自Django的人作为背景,那将是很好的选择; 我不想学习六个不同的框架来评估它们.

DerbyJS

这看起来很有趣,因为它在一个包中处理客户端和服务器端,但有点不成熟.他们警告不要在生产中使用它,如果我理解文档,它还不支持任何形式的持久性,这是......限制.我觉得如果它完成了它将是我想要的完美 ...

所以....

所以,呃......现在怎么样?有没有人使用这些工具中的任何一个来尝试将客户端渲染添加到Django webapp?怎么回事?

Eti*_*nne 6

为了与Django模板完全集成,我发现了这个:Yz-Javascript-Django-Template-Compiler.我自己从未使用它,不幸的是它看起来有点没有维护.

Swig是一款快速的JS django式模板引擎.

Pure是一个经过编译的JS模板工具,经过一些思考,我可以很好地使用Django,因为模板只是普通的有效HTML.

其他有趣的JS模板库:


Jus*_*oss 1

我在服务器端和客户端都使用过 Mustache,效果非常好。我使用它的项目只是一个小项目,但我对结果非常满意并会推荐它。

该项目是一个用于调试 HTTP 服务的 Web 应用程序,如果您想查看,可以在 GitHub 上查看:Spyglass