Good javascript framework to integrate with Django?

I'm building a new web app. It will be in Django, but I'm now looking for a good frontend javascript library/framework to use.

I know JQuery, but what about Backbone.js or node.js? Thoughts?

I'm looking past JQuery because an MVC JavaScript library would be nice to use.

The things you're talking about all serve different purposes, and I'm not sure any of them is an exact match for what you said you want.

As you know, jQuery is all about client-side presentation and interaction, implemented in the browser.

Django -- a fine MVC framework for pythonistsas -- is the only thing on your list which codifies the MVC approach.

Node.js really isn't a front-end. It's "just" javascript (V8) grafted on to an event loop. Really. That's it. And your browser migth be running V8 (Chrome does) but it's not going to be running node.js. Node.js is about server-side javascript goodness. Since you're already doing your backend in Django, you've already committed to python. So node.js probably isn;t a consideration.

But here are some things you might like to know if you decide to do your app in javascript instead. Node.js has a lot to offer on the server. While node.js itself mostly provides a solid API abstraction over the network and filesystem layers, the ecosystem is amazing. The most widely used "web back-end framework" there is express. The docs are a little rough compared to what you're used to with Django, but you can build great sites. There is no baked-in MVC model (yet, that I know about, but that could literally change today) and persistence is provided by a bewildering array of database modules for just about every store you'd ever want to use. If you asked node.js proponents, I suspect at least a few of them are not very interested in the "old" MVC approach.

I don't know much about Backbone.js, but as I recall it's focus is on supporting ReSTful implementations and helping you avoid the sort of tangled mess that javascript middleware can easily become. (Of course it's possible to be elegant in javascript; but it's easier to be messy, especially when you add async events.)

I don't know why your question got dinged, and I hope this at least provides some food for thought. Good luck!