2011-11-26 35 views
16

Algunos antecedentes: Estoy planeando crear una aplicación con Django como back-end y usando Backbone.js como el framework de frontend Javascript. Es una aplicación de una sola página (SPA) y esta es la razón por la que decidí usar Backbone.js. La aplicación es similar a un motor de blogs; los usuarios publican entradas que contienen texto e imágenes y pueden verlas por "etiqueta". Pueden buscar a través de sus entradas por "etiqueta" o por una palabra en particular.Uso de Node.js con Django y Backbone.js

Últimamente, después de enterarme de todo el alboroto sobre Node.js, me pregunto cómo puede ayudar mi aplicación. Pero no quiero hacer que la aplicación se ejecute exclusivamente en node.js en el backend, es decir, todavía deseo usar Django para el back-end. ¿Sería posible utilizar el nodo para el "extremo medio" como se menciona here?

¿Cómo puedo optimizar mi aplicación con Node.js?

Respuesta

23

Parece que su aplicación no necesita necesariamente Node.js. Las principales razones por las que quizás desee usar Node además de un marco más tradicional como Django o Rails es si hay un aspecto en tiempo real o multijugador para su aplicación.

No utilizaría Node.js porque hay un montón de alboroto al respecto - si necesita la funcionalidad mencionada, puede ser genial.

una arquitectura de alto nivel de su aplicación podría ser algo como:

Django

  • Sirviendo su sola página
  • activos de servicio (CSS, JS, imágenes, etc ...)
  • Manejo de la conexión DB: mejor configuración Rutas RESTful para cada modelo de datos
  • Procesamiento de datos, etc ...

Backbone

  • Manejo de la interacción del usuario
  • peticiones http Make a leer y escribir datos

Nodo (Opcional)

  • Uso algo así como Socket.io para notificar a los clientes de actualizaciones (en lugar de polarización)
  • Puede reemplazar la funcionalidad de Django con uno o una combinación de módulos de nodo
+2

> mejor configurar rutas RESTful para cada modelo de datos O puede usar Tastypie. – ustun

+1

Gracias por eso. ¡Muy útil! –

4

Si se siente cómodo con Python y Django en En general, recomendaría usar un servidor web como Tornado. Es muy fácil de usar y tiene una gran curva de aprendizaje si estás familiarizado con Django. En general, verá mejoras de rendimiento y tendrá la capacidad de implementar funcionalidades "oscuras", como la programación de Comet.

En cuanto a la interfaz, sí, Backbone es una excelente opción, pero también tenga cuidado con Coffeescript ...

+0

"aprendizaje empinado": ¿se refería a la curva de "aprendizaje plano"? – Forethinker

+1

bueno, es oscuro :) http://english.stackexchange.com/questions/6209/what-is-meant-by-steep-learning-curve – hymloth