Obviously, horses for courses, but what are some good ways to integrate javascript libraries with one’s Django application?
I’m planning on using jQuery, mostly because it seems popular and looks powerful (but I’m open to other suggestions).
Are there python-side libraries that are very helpful or essential? Or is it best simply to create JSON views, and hand-code the javascript (using an appropriate javascript framework)?
I’ve looked (briefly) at Dajax, but based on the scant documentation, it’s not clear that it really gives me very much. I would certainly prefer something with a bit more documentation.
Other answers here suggest that pjax doesn’t necessarily work well with many browsers, so that’s out.
Edit: Thanks everyone. I’ll be looking at tastypie to simplify exposing some json views, and man up to write some javascript by hand (Which having done a tiny bit earlier this year, seems much better than it was in the late 90s).
On python side, I’d suggest to look at
pistonandtastypie.(Starting with AJAX + Django myself, I also found Dajax, but went with
piston—felt more ‘unix-way’ for me, don’t like these all-in-one solutions. Though piston wasn’t updated for a long time now, so I’d recommendtastypie, which is actively maintained.)EDIT. There’s also a similar project,
django-rest-framework. Never used it myself yet, it’s pretty new.Basically, these libs help you create a fully working read-write API for your models, so you can perform create-read-update-delete operations from your javascript via HTTP. You don’t need to define any views or serializers. Instead, you define resources, which is a decent abstraction, I think.
And it usually takes just a few lines of code, especially if your resources are tied to models.
However, if you need something more complicated, you can
rethink your designwrite your views. With class-based views, it’s pretty easy, too. Take a look at this snippet for example.