Hi Simon,
Yeah, the tg/cherrypy thing has been a real hassle for me, since i've been trying to run my apps locally under apache. That's one thing that needs to be fixed.
TG looks the most promising apart from the cherrypy server crap, but until they remove that, it's effectively useless in my eyes. I don't see it being removed, so I think i'm going to go down the Django path.
DB APIs, I quite liked the turbogears one, the linking of tables was stupidly easy. for those who haven't used it, here's a sample
class User:
name = StringCol(length=200)
password = StringCol(length=32)
posts = relatedjoin("Post")
I'll be upfront, I'm not a database expert, and while I can so joining and things just fine, indexing and joining on more than 3 tables is pretty much beyond me, and for that reason, it's fantastic having an easy abstraction like that. There seems to be a reasonable method for sorting data in TG too, which is nice.
Struts seems to be quite popular, but I'm not big on java. I got a book on java so I can at least say I've tried it before I condemn it (and from what i've seen so far, that's the way it's going). It's infinitely cleaner than C or C++, but right now i'm trying to avoid programming in those too. What is reasonably nice is that to get a partially compiled language, it's much quicker to develop a GUI app with Swing than it would be wrapping the windows and gtk APIs in a crossplatform wrapper. Swing is pretty simple to start with, although that's not really for web development, but hey, I wandered off topic. Java is too verbose for my taste, but I might give struts a look over. I believe there's another java framework that's quite popular as well, i need to look that up.
RoR i'd use if it was a really simple app and I had the database sat in front of me, i don't like writing SQL... I think i'm going to look more at django, because between python and ruby, i'd prefer ruby, but since RoR doesn't support database modelling, i'd much rather use Django.
I did put together a mini Controller library of my own in ruby, that i'm itching to try out. The code is tiny, even with error checking. The database wrapper code is probably going to be the hardest AFAICT. Rails is nice for a little speed, but it's only useful for really simple apps IMO. It would be impossible to write the site I'm working on in RoR, and that's why i've lost interest.
On another note, after finishing my copy of Programming Ruby (well worth it's cost, FYI), I just can't go back to programming a static language like C, it's just so inflexible in comparison, and flexibility is power. Between Ruby, Python and GCL, I think i've found what i'm looking for.