tutorial - ¿Cómo construir un sistema push en django?
sistema de inventario django (7)
Necesito construir un sistema push en django, básicamente su función es enviar mensajes del servidor al navegador.
Como no se puede usar nodejs, prefiero websocket u orbitado, pero no tengo idea de cómo implementar ninguno de estos dos en django. los pls me recomiendan un método, esto me ayudará mucho, gracias.
A partir de 2016, hay canales de Django , que llevan los websockets a Django (1.8 y superiores).
También es parte del proyecto oficial de Django .
Como sugiere @hymloth, una mejor manera es usar tornado o node.js.
Pero, si tiene que usar Django, he escrito un artículo sobre la implementación de WebSocket con el que podría ser útil.
http://curella.org/blog/2012/jul/17/django-push-using-server-sent-events-and-websocket/
Django no es bueno para "empujar" las cosas al cliente. Si django es su única opción, la única manera de imitar un impulso es a través de una encuesta larga. Pero esto no es eficiente. En cambio, los websockets están calientes. Tornado y torcido puede ayudarte aquí. También hay una respuesta más completa a su pregunta here .
Hay un módulo Django, que soporta websockets fuera de la caja usando Redis como cola de mensajes. Eche un vistazo aquí: https://github.com/jrief/django-websocket-redis
Descargo de responsabilidad: Soy el autor de esa biblioteca.
Otra implementación de websockets en Django: https://github.com/jonashagstedt/swampdragon
De los documentos: SwampDragon hace uso del maravilloso ORM de Djangos, el excelente soporte websocket de Tornados (con respaldo. Probado en IE7) y la velocidad deslumbrante de Redis.
Una opción sería usar un servidor WebSocket que se ejecute en paralelo a su servidor Django que tiene una API REST / Push, y luego realizar los envíos desde Django simplemente mediante HTTP / POSTing al servidor WebSocket, que a su vez envía los mensajes a todos los clientes WebSocket conectados. .
De esa manera, no necesita ningún cambio estructural / técnico en su aplicación Django existente, sin embargo, tiene una función de inserción basada en WebSocket moderna y escalable.
Para un servicio alojado que proporcione lo anterior, echaría un vistazo a http://pusher.com .
Si prefieres ejecutar el tuyo, echaría un vistazo a http://autobahn.ws , que se implementa como un dispositivo virtual listo para ejecutar (VMware, VirtualBox, Amazon EC2). Puede encontrar ejemplos de trabajo de REST / API aquí https://github.com/tavendo/AutobahnPushPython
Descargo de responsabilidad: Soy autor de Autobahn Open-source y trabajo para Tavendo, que ofrece Autobahn.ws (la oferta comercial basada en Autobahn OSS).
Utiliza tornado internamente y tiene soporte para python 3.