I’ve been programming Python a while, but DJango and web programming in general is new to me.
I have a very long operation performed in a Python view. Since the local() function in my view takes so long to return, there’s an HTTP timeout. Fair enough, I understand that part.
What’s the best way to give an HTTPresponse back to my users immediately, then dynamically show the results of some python code within the page? I suspect the answer may lie in AJAX but I;m not sure how AJAX on the client can be fed from Python on the server, or even the modules one would commonly use to do such a thing.
Ajax doesn’t require any particular technology on the server side. All you need is to return a response in some form that some Javascript on the client side can understand. JSON is an excellent choice here, as it’s easy to create in Python (there’s a
jsonlibrary in 2.6, and Django hasdjango.utils.simplejsonfor other versions).So all you need to do is to put your data in JSON form then send it just as you would any other response – ie by wrapping it in an
HTTPResponse.