To be honest the different isn't that huge. The major reason I chose python is because there are many python web libraries that conform to WSGI standard, which means I can easily swap out components (routing, template, widgets, database mapping, etc.) that suites me the best. As a result there is a broader variety of each type to choose from in python.
Rails, as stated by its creators, is opinionated software, so you're stuck with their preferred way of doing things, which fortunately is not too bad as of now. So if you're a control-freak like me who also wants to squeeze more juice out of your CPU cycles, then go for python. If you want to put your trust in a well-integrated framework of components cherry-picked by smart folks, then go for rails or django (also python, but a little less flexible).
Rails, as stated by its creators, is opinionated software, so you're stuck with their preferred way of doing things, which fortunately is not too bad as of now. So if you're a control-freak like me who also wants to squeeze more juice out of your CPU cycles, then go for python. If you want to put your trust in a well-integrated framework of components cherry-picked by smart folks, then go for rails or django (also python, but a little less flexible).
Here's a fairly up-to-date overview of python web dev options: http://jesusphreak.infogami.com/blog/vrp1