But I did have a devil of a time with sessions, so in case you're using web.py and having problems, here's what I discovered:
You'd expect a normal, pythonic dictionary, but, alas, we don't have this in web.py. To set a value (assuming my session object is named boringly "session," and I want to set "myvalue" to 1):
However, to access data, you have to use .get():
session.myvalue = 1
will give you that same value back.
I spent a good three-ish hours trying to figure out why my session data kept getting nuked. There is actually a bug in web.py (feel free to comment if/when this gets fixed) that reloads your module twice if you're in debug mode. To fix it, add this after the imports in your code:
web.config.debug = False
Of course, you end up with a tradeoff while you're working on your site (do I care to see the sometimes-helpful error messages enough to have session stuff broken?), but at least it should work fine when you're ready for the world to use it.