Как использовать джанго-ддп

Я использую django в качестве бэкэнда. Читая материал о метеоре, я нашел django-ddp. Я много искал, но так и не понял, для чего нужен django-ddp. Я понял, что вы можете использовать его для подключения метеора к вашему серверу django, но каков вариант использования?

Как клиент подключается к django и/или метеору? Должен ли метеор работать на том же сервере? Как обрабатываются http-запросы?

Может быть, крошечный пример поможет мне понять это.

Для меня важно: могу ли я использовать это, чтобы объединить преимущества django и метеора?


person FaBay    schedule 21.10.2015    source источник


Ответы (1)


Django DDP предоставляет совместимую с Meteor внутреннюю структуру реального времени с компенсацией задержки для моделей Django (Python). Он также может обслуживать ваш интерфейсный код Meteor (HTML/JS/CSS/...), позволяя вам избежать использования Meteor (и node.js) на сервере, одновременно обслуживая обычные представления Django.

Django — уважаемая веб-инфраструктура с мощным реляционным картографом объектов (ORM) с включенной по умолчанию поддержкой миграции схем. Django DDP эффективен и безопасен, он использует gevent для обработки HTTP-запросов и управления параллелизмом на уровне процессов и нескольких процессов. (на нескольких хостах), чтобы обеспечить масштабирование для одновременного обслуживания множества клиентов. Веб-сокеты обрабатываются с помощью 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());
        }
    });
}

Если вы обслуживаете свое приложение Meteor из Django DDP, удалите строку DDP.connect и опустите второй параметр до new Mongo.Collection.

Вы можете найти пример приложения Todos полезным для начала. Он включает в себя полный рабочий пример того, как написать клиентское приложение Meteor и серверное приложение Django DDP.

Отказ от ответственности: я автор Django DDP - извините, если части моего ответа звучат как маркетинговая болтовня, но я просто пытаюсь ответить на первую часть вопроса.

person Tyson    schedule 29.10.2015
comment
Спасибо за этот большой ответ. Информация о gevent была тем, что я пропустил. Offtopic: Есть ли простое решение для развертывания такого проекта без создания веб-сервера с нуля? - person FaBay; 02.11.2015
comment
@FaBay Я знаю, что один коллега развертывает django-ddp на Heroku, хочу задать еще один вопрос о том, как развернуть проект django-ddp, чтобы я мог на него ответить? - person Tyson; 04.11.2015
comment
Могу я спросить, как развернуть проект django-ddp? - person Dean Christian Armada; 16.12.2015
comment
@DeanChristianArmada - можете ли вы проголосовать за этот ответ, если он полезен? И, конечно же, я был бы рад ответить на вопрос о развертывании, если вы зададите его как еще один вопрос - мне нужно больше представителей. ;-) - person Tyson; 16.12.2015
comment
@Tyson, могу я спросить, как его развернуть или запустить на локальном сервере? Мне очень нравится проект django-ddp, и я хотел бы узнать о нем больше. - person Dean Christian Armada; 16.12.2015