2011-11-26 7 views
16

En arrière-plan: Je prévois de créer une application avec Django comme backend et d'utiliser Backbone.js comme framework Javascript frontend. C'est une application de page unique (SPA) et c'est la raison pour laquelle j'ai décidé d'utiliser Backbone.js. L'application est similaire à un moteur de blogging; les utilisateurs publient des entrées contenant du texte et des images et peuvent les voir par "tag". Ils peuvent rechercher leurs entrées par "tag" ou par un mot particulier. Dernièrement, après avoir entendu parler de tout le monde à propos de Node.js, je me demande comment cela peut-il aider mon application? Mais je ne veux pas que l'application fonctionne purement sur node.js sur le backend, c'est-à-dire que je souhaite toujours utiliser Django pour le backend. Serait-il possible d'utiliser Node pour le "middle end" comme mentionné here?Utilisation de Node.js avec Django et Backbone.js

Comment puis-je optimiser mon application avec Node.js?

Répondre

23

Il semble que votre application n'a pas nécessairement besoin de Node.js. Les principales raisons pour lesquelles vous voudrez utiliser Node en plus d'un framework plus traditionnel comme Django ou Rails est s'il y a un aspect temps réel ou multijoueur dans votre application.

Je n'utiliserais pas Node.js parce qu'il y a beaucoup de à ce sujet - si vous avez besoin de la fonctionnalité susmentionnée, cependant, il peut être génial.

Une architecture de haut niveau de votre application peut ressembler à:

Django

  • service de votre seule page
  • actifs Au service (css, js, images, etc ...)
  • Traitement de la connexion DB - préférable de configurer des routes RESTful pour chaque modèle de données
  • Traitement des données, etc ...

Backbone

  • Manipulation interaction de l'utilisateur
  • des requêtes HTTP pour lire et écrire des données

nœud (en option)

  • Utilisez quelque chose comme Socket.io pour informer les clients des mises à jour (au lieu de poling)
  • Vous pouvez remplacer la fonctionnalité de Django avec un ou une combinaison de modules de noeud
+2

> préférable de configurer des routes RESTful pour chaque modèle de données Ou vous pouvez utiliser Tastypie. – ustun

+1

Merci pour cela. Très utile! –

4

Si vous vous sentez à l'aise avec Python et Django En général, je recommande d'utiliser un serveur Web comme Tornado. Il est très facile à utiliser et a une courbe d'apprentissage abrupte si vous connaissez Django. En général, vous verrez des améliorations de performance et vous aurez la possibilité d'implémenter des fonctionnalités autrement "obscures", comme la programmation Comet. En ce qui concerne le frontend, oui, Backbone est un excellent choix, mais gardez un œil sur Coffeescript aussi ...

+0

"Apprendre rapidement" - vouliez-vous dire "courbe d'apprentissage"? – Forethinker

+1

bien, c'est obscur :) http://english.stackexchange.com/questions/6209/what-is-meant-by-steep-learning-curve – hymloth

Questions connexes