如何使用 django-ddp

How to use django-ddp

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

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

也许一个小例子可以帮助我理解这一点。

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

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

Django 是一个备受推崇的 Web 框架,具有强大的对象关系映射器 (ORM),默认包含模式迁移支持。 Django DDP 高效且安全,使用 gevent to handle HTTP requests and manage concurrency at the process level, and multiple processes (across multiple hosts) to allow scaling-out to serve many clients simultaneously. WebSockets are handled using 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 的作者 - 抱歉,如果我的部分回答听起来像是营销废话,但我只是想回答问题的第一部分。