介绍
我目前正在编写一个非常标准的基于 Django 的应用程序(基本上是一种花哨的 CRM/联系人列表之类的东西)。它有点工作,但随着我不断尝试使用越来越多的 AJAXy UI 代码(使用 jQuery)来改进界面,使用它开始变得非常痛苦。我得到了很长的脆弱 jQuery 事件处理程序块,它们解析 DOM,将更改推送回服务器,获取一些 JSON,并尝试基于此更新 DOM。
我觉得,至少,我可能想在组合中添加一些客户端模板。或者,我可以尝试切换到 JS 框架,并将我的 Django 应用程序用作数据库抽象层。或者即使我了解并喜欢 Python,我也可以放弃 Django 应用程序,并尝试使用 JS/Node.js 解决方案或其他方式。
有没有其他人遇到过这种情况?你是怎么解决的?
设计目标
- DRY:我不想复制我的模型或模板(或者至少,不需要复制)。
- 我希望访问者登陆页面以获得服务器端渲染的结果。
- 当访问者单击事物时,我想通过客户端模板和呈现来处理它,并通过 AJAX 调用对 REST 接口保持服务器更新。
那么......我该怎么做呢?我收集了一些框架和模板系统的链接。没有特别的顺序:
灰尘.js:
LinkedIn显然正在使用它来解决类似的问题。它在服务器端使用 Node.js,这并不理想(我从未使用过 Node),但至少它不是基于 JVM。它在 github 上似乎也处于休眠状态 - 我发现人们一直想知道维护者去了哪里的邮件列表。听起来确实不错——LinkedIn 的博客文章很好地推销了这项技术,尤其是编译它的能力。但它似乎只是模板。这足以满足我的要求吗?
小胡子:
此选项同时具有 Python 和 JS 实现,并且似乎很受欢迎……但我找不到任何似乎在 Django 中使用 Mustache 模板的人。这是因为它太容易配得上一篇博文,还是不可能或不明智?它也非常有限。至少我可能需要求助于某种 MVC JS 框架,对吧?
Backbone、Spine、KnockoutJS、EmberJS、JavascriptMVC 等:
有这么多框架,有点令人生畏。乍一看,所有这些似乎都非常好。如果我走这条路,我似乎还需要重写很多我的应用程序,而且我真的很想找到一个实际上已经做过类似事情的人。另外,如果有一个明确的选择让来自 Django 的人作为背景,那就太好了;我不想学习六种不同的框架来评估它们。
德比JS
这看起来很有趣,因为它在一个包中同时处理客户端和服务器端,但有点不成熟。他们警告不要在生产中使用它,如果我理解文档,它还不支持任何形式的持久性,这是......限制。我觉得如果它完成了,那将是我想要的完美……
所以....
所以,呃……现在呢?有没有人使用这些工具尝试将客户端渲染添加到 Django webapp?进展如何?