Intro
Je suis en train d'écrire un très standard Django en fonction de l'application (en gros une fantaisie CRM/liste de contact genre de chose). C'est un peu de travail, mais comme j'essaie d'améliorer l'interface avec de plus en plus AJAXy code de l'INTERFACE utilisateur (à l'aide de jQuery), il commence à être une vraie douleur pour travailler avec. Je suis de longs blocs de fragile jQuery gestionnaires d'événements qui analyse le DOM, pousser les modifications sur le serveur, obtenir quelques JSON en arrière et essayer de mettre à jour le DOM sur cette base.
Je me sens comme, au minimum, je voulez probablement ajouter un peu de client-côté des modèles dans le mélange. Sinon, je pourrais essayer et de passer à un JS cadre, et juste utiliser mon Django app comme une couche d'abstraction de base. Ou même si je connais et j'adore Python, je ne pouvais abandonner l'Django app, et d'essayer d'aller avec un JS/Node.js solution ou quelque chose.
Quelqu'un d'autre a été dans cette situation? Comment avez-vous le résoudre?
Les objectifs de conception
- SEC: je ne veux pas avoir à reproduire mes modèles ou des modèles (ou au moins, plus que nécessaire).
- Je veux que les visiteurs d'atterrir sur une page pour obtenir les résultats rendereed côté serveur.
- Que les visiteurs cliquent sur les choses, je tiens à gérer que par le côté client de modèles et de rendu, et de garder le serveur de mise à jour via des appels AJAX pour une interface REST.
Donc...comment dois-je faire? J'ai recueilli des liens vers quelques-uns des cadres et des systèmes de modèle. Dans aucun ordre particulier:
dust.js:
C'est apparemment utilisé par LinkedIn pour résoudre un problème similaire. Il utilise Node.js sur le côté serveur qui n'est pas idéal (je n'ai jamais utilisé de Nœud), mais au moins il n'est pas en fonction de la JVM. Il semble également être en dormance sur github - j'ai trouvé des listes de diffusion où les gens se demandent où le responsable est allé. Il n'a l'air très bon - le blog de LinkedIn fait du bon travail, la vente de la technologie, en particulier la capacité de le compiler. Mais il semble JUSTE être la création de modèles. Est-ce suffisant pour ce que je veux?
Moustache:
Cette option a Python et JS implémentations, et semble populaire...mais je ne peux pas trouver quelqu'un qui semble être l'utilisation d'Moustache modèles avec Django. C'est que c'est trop facile pour mériter un article de blog, ou est-il impossible ou contraire déconseillé? Il est également assez limité; au minimum, je serais probablement besoin de se tourner vers une sorte de MVC JS cadre, à droite?
Colonne vertébrale, Colonne vertébrale, KnockoutJS, EmberJS, JavascriptMVC, etc:
Il ya tellement de nombreux cadres c'est un peu intimidant. Tous semblent parfaitement bien au premier coup d'œil. Il semble aussi que j'avais besoin de réécrire une grande partie de mon application si je suis allé dans cette voie, et j'aimerais vraiment aimerais trouver quelqu'un qui a réellement fait quelque chose comme cela. Aussi, ça serait bien si il y avait un choix clair pour quelqu'un venant de Django comme un arrière-plan; je ne veux pas avoir à apprendre une demi-douzaine de différents cadres pour les évaluer.
DerbyJS
Cela semble intéressant car il traite à la fois les côtés client et serveur dans un seul paquet, mais un peu immature. Ils mettent en garde contre son utilisation dans la production, et si je comprends les docs il ne supporte pas encore toute forme de persistance, qui est...un facteur limitant. J'ai le sentiment que si elle a été terminé, il serait parfait pour ce que je veux bien...
Donc....
Donc, euh...et maintenant? Quelqu'un a utilisé l'un de ces outils pour essayer et ajouter le rendu côté client pour un Django d'une webapp? Comment se fait-il aller?