I am by no means an authority on this subject. This has been my first experience with python, html, and javascript. web.py is a web server framework for python. All of my server logic like temperature monitoring, temperature control, turning pumps and valves on an off, etc. is handled on the python server. The html, javascript, and css files that web browsers use to display the interface is served up via the web.py server. Communications between the client side web browser and the python server is accomplished by get and post calls to the web.py server using the ajax function included in the jQuery library(javascript).
The widgets from jmwidgets.com that I mentioned before are very easy to use once you have a data widget created. I dirty hacked together a data widget that works with my web.py server by tweaking their php data widget example.
Check out steve071's github if you haven't already:
https://www.homebrewtalk.com/f235/raspberry-pi-temp-controller-344529/
I used his python server structure as a model for my project. My server is a bit more complicated with a lot more data being passed between the server and the client. I'm sure that there is a simpler and more concise way of passing larger quantities of data through the different processes and the web server, but I didn't feel like fixing something that wasn't broke.
Let me know if your interested in seeing my jmwidgets data widget or anything else. I am planning on setting up a github when I get things a little more finalized. However, I haven't had a lot of time to work on it lately. In fact, I haven't even touched it in a few months.