我正在使用django作为后端。在阅读有关流星的内容时,我发现了django-ddp。 我搜索了很多,但我没有得到django-ddp的用途。 我知道你可以用它来连接流星到你的django后端,但用例是什么?
客户端如何连接到django和/或meteor?流星是否必须在同一台服务器上运行?如何处理http请求?
也许一个很小的例子可以帮助我解决这个问题。
对我来说很重要:我可以用它来结合django和meteor的好处吗?
答案 0 :(得分:5)
Django DDP为Django(Python)模型提供了Meteor兼容,实时,延迟补偿的后端框架。它还可以为您的Meteor前端代码(HTML / JS / CSS / ...)提供服务,允许您避免在服务器上使用Meteor(和node.js),同时为常规Django视图提供服务。
Django是一个受人尊敬的Web框架,具有强大的对象关系映射器(ORM),默认情况下支持模式迁移。 Django DDP是高效和安全的,使用gevent来处理HTTP请求并管理进程级别的并发,以及多个进程(跨多个主机),以允许向外扩展以同时为多个客户端提供服务。 WebSockets使用gevent-websocket处理。将这些方面与Meteor的实时,延迟补偿优势结合起来确实为您提供了两者的优势(除非您更喜欢在后端服务器上运行node.js)。
如果Django DDP用于为您的Meteor应用程序提供服务,那么客户端(浏览器)将自动连接到Django DDP。否则,您可以将Meteor应用程序连接到Django DDP并使用Django DDP连接,如下所示:
if(Meteor.isClient) {
Django = DDP.connect('http://ddp.example.com/');
Tasks = new Mongo.Collection('myapp.Tasks', {connection: Django});
Django.subscribe('Tasks', {
onReady: function(error, result) {
// Log each matching Task to the browser console in a table
console.table(Tasks.find().fetch());
}
});
}
如果您从Django DDP提供Meteor应用程序,请删除DDP.connect
行,并将第二个参数省略到new Mongo.Collection
。
您可能会发现Todos example app是一个有用的起点。它包含了如何编写Meteor客户端应用程序和Django DDP服务器应用程序的完整工作示例。
免责声明:我是Django DDP的作者 - 对不起,如果我的部分答案听起来像营销方式,但我只想回答问题的第一部分。