I've done something reasonably similar using CherryPy as the webserver. The main application I wrote stored data in a sqlite3 database. A separate thread then ran the CherryPy server process. Each web browser call is mapped (by CherryPy) to a class method which dealt with connecting to the sqlite3 database, collecting the appropriate data and then generating the page. You can have much tighter integration between the webserver and the application if required. I found cherrytemplate to be a usable and lightweight HTML page templating system that was appropriate for what I wanted but there are lots of others.
I haven't gone down the full AJAX/DHTML line with CherryPy but from what I've seen of it, it seems quite capable of delivering. Neither have I come across any issues with firewalls or proxy configurations - I just set CherryPy to bind to 127.0.0.1 at a suitably high port number and it's always worked so far. Matthew. -- http://mail.python.org/mailman/listinfo/python-list