如何使用django-ddp

FaB*_*Bay 3 django meteor ddp

我正在使用django作为后端.在阅读有关流星的内容时,我发现了django-ddp.我搜索了很多,但我没有得到django-ddp的用途.我知道你可以用它来将meteor连接到你的django后端,但用例是什么?

客户端如何连接到django和/或meteor?流星是否必须在同一台服务器上运行?如何处理http请求?

也许一个小例子可以帮助我做到这一点.

对我来说很重要:我可以用它来结合django和meteor的好处吗?

Tys*_*son 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());
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

如果您从Django DDP服务Meteor应用程序,则删除该DDP.connect行并省略第二个参数new Mongo.Collection.

您可能会发现Todos示例应用程序是一个有用的起点.它包含了如何编写Meteor客户端应用程序和Django DDP服务器应用程序的完整工作示例.

免责声明:我是Django DDP的作者 - 对不起,如果我的部分答案听起来像营销guff,但我只是想回答问题的第一部分.