views:

1054

answers:

3

I want to have a browser page that updates some information on a timer or events. I'd like to use Python on the server side. It's quite simple, I don't need anything massively complex.

I can spend some time figuring out how to do all this the "AJAX way", but I'm sure someone has written a nice Python library to do all the heavy lifting. If you have used such a library please let me know the details.

Note: I saw how-to-implement-a-minimal-server-for-ajax-in-python but I want a library to hide the implementation details.

+4  A: 

AJAX stands for Asynchronous JavaScript and XML. You don't need any special library, other than the Javascript installed on the browser to do AJAX calls. The AJAX requests comes from the client side Javascript code, and goes to the server side which in your case would be handled in python.

You probably want to use the Django web framework.

Check out this tutorial on Django tips: A simple AJAX example.

Here is a simple client side tutorial on XmlHTTPRequest / AJAX

Brian R. Bondy
+5  A: 

You can also write both the client and server side of the ajax code using python with pyjamas:

Here's an RPC style server and simple example:

http://www.machine-envy.com/blog/2006/12/10/howto-pyjamas-pylons-json/

Lots of people use it with Django, but as the above example shows it will work fine with Pylons, and can be used with TurboGears2 just as easily.

I'm generally in favor of learning enough javascript to do this kind of thing yourself, but if your problem fits what pygjamas can do, you'll get results from that very quickly and easily.

Mark Ramm
Yes, that looks along the lines of what I want. I shall investigate further. Cheers!
Nick
+1  A: 

I suggest you to implement the server part in Django, which is in my opinion a fantastic toolkit. Through Django, you produce your XML responses (although I suggest you to use JSON, which is easier to handle on the web browser side).

Once you have something that generates your reply on server side, you have to code the javascript code that invokes it (through the asynchronous call), gets the result (in JSON) and uses it to do something clever on the DOM tree of the page. For this, you need a JavaScript library.

I did some experience with various javascript libraries for "Web 2.0". Scriptaculous is cool, and Dojo as well, but my absolute favourite is MochiKit, because they focus on a syntax which is very pythonic, so it will hide you quite well the differences between javascript and python.

Stefano Borini
Not sure I need a whole server framework like Django. Mochikit looks very interesting as I only need the AJAX functionality. Thanks.
Nick