卡布奇诺,Django的,AJAX,而这一切配合在一起 - 审查我的建筑!(Cappuccino,

2019-09-01 03:33发布

我试图让我的周围卡布奇诺头。 我想我的同龄人StackOverview查看下方的架构,看看它是否有道理 - 其目的是利用Django和卡布奇诺的独特优势,而不在技术重叠增加了一倍......

当Web浏览器请求 '友好' URL(例如,/,/用品等):

  • Django的urls.py匹配这一个观点。
  • 视图,而不是做Django的典型模板中的填充与当地人快译通的工作,
    返回一个直接卡布奇诺的应用使用小“存根” HTML。
  • 客户端接收HTML卡布奇诺
  • 客户端请求的存根HTML中提到的目标ĴJS网址
  • 最终用户应用程序被执行并显示在浏览器

浏览器现在有一个工作程序。 当用户做一些事情,从服务器请求的内容:

  • 浏览器发送一个XMLHttpRequest到URL。
  • Django的URLs.py匹配这一个观点。
  • 该视图它的工作原理,也许与DB模式交互。 但是,而不是返回一个模板,Django会返回一些JSON。
  • 客户临危的JSON和做任何需要做的事。

这是否有意义? 我们仍然有友好的URL的利益,并正在创建数据库。我们不可能将代码模型。 但是,而不是使用模板,我们提供卡布奇诺存根页面和JSON响应,为了给用户更多的东西像一个真正的应用程序,而不是像一个HTML模板引擎。

是否有可能做的事情的一个更好的办法? 什么其他Pythonistas使用? 感谢您的反馈意见。

Answer 1:

对于低流量的网站,使用Django的路由层将被罚款,但如果你打算在获得流量的显著量,你可能会考虑让你的Web服务器代理处理存根。

至于其他的,它的工作原理和TurboGears的社区已经做了多年(我是一个TG提交者所以这就是我通常使用)。 因为你刚才设置“JSON”作为您的模板引擎返回的字典到模板的TG架构使得这个简单的。

这样做在Django同样的事情并不复杂得多。 只需使用序列化工具来编写结果的反应,而不是使用模板调用。

需要注意的是,当你做这样的架构,这是相当容易,如果你把所有的应用程序逻辑在一个地方管理。 把一些应用程序逻辑Django和一些在浏览器中会导致事情开始变得凌乱相当迅速。 如果你把你的服务器作为一个愚蠢的持久层(与验证/认证/授权的除外),生活很容易。

FWIW,我发现了SproutCore是容易的工作比卡布奇诺,如果你有兴趣较重的非渐进增强框架。



文章来源: Cappuccino, Django, AJAX, and fitting it all together - review my architecture!