3

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

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

也许一个小例子可以帮助我得到这个。

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

4

1 回答 1

5

Django DDP 为Django (Python) 模型提供了一个兼容 Meteor 的、实时的、延迟补偿的后端框架。它还可以为您的 Meteor 前端代码(HTML/JS/CSS/...)提供服务,让您避免在服务器上使用 Meteor(和 node.js),同时提供常规的 Django 视图。

Django 是一个受人尊敬的 Web 框架,具有强大的对象关系映射器 (ORM),默认支持模式迁移。Django DDP 高效且安全,使用gevent处理 HTTP 请求并在进程级别管理并发,并使用多个进程(跨多个主机)允许横向扩展以同时为多个客户端提供服务。WebSocket 使用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 示例应用程序是一个有用的起点。它包括一个完整的工作示例,说明如何编写 Meteor 客户端应用程序和 Django DDP 服务器应用程序。

免责声明:我是 Django DDP 的作者 - 如果我的部分回答听起来像是营销废话,我很抱歉,但我只是想回答问题的第一部分。

于 2015-10-29T02:15:42.153 回答