import web
urls = (
'/(.*)', 'hello'
)
app = web.application(urls, globals())
class hello:
def GET(self, name):
if not name:
name = 'world'
return 'Hello, ' + name + '!'
if __name__ == "__main__":
app.run()Our latest site, http://sitecanary.com/ has the UI completely written in webpy.
As for MVC, the other big ones for Python (other than Django) are Pylons and TurboGears. Of course there are some other very heavy weight ones as well, such as Zope and Plone, but my knowledge of these is very limited, so I'll leave them for someone else to comment on.
Finally, you can could always use the WSGI spec directly and just slap together all the other "best of bread" pieces to make your own simple framework. It's actually pretty easy to do so, and the best tutorial I've found on doing just that is on Joe Gregorio's website (http://bitworking.org/news/Why_so_many_Python_web_frameworks). Check it out, it's definitely worth running through once to at least get an idea of what other frameworks are doing under the hood.
[1] http://jinja.pocoo.org/2/ [2] http://www.sqlalchemy.org/ [3] http://bitbucket.org/jek/flatland/overview/
FWIW Guido settled on Django. I dont know if he has changed his mind since.
Also more a library then a framework.
Can do everything thingie: http://www.twistedmatrix.com
Django, Pylons, Cherry.py, Turbogears, web.py, Zope, Plone (more of a CMS than a framework, though), Juno, itty, djng, mnml, itty, newf...
I'm sure there's others that I forgot.
At work we use Django and somewhat happy with it. In past I used to use web.py and I liked it.
The emergence of make-your-frameworks (Pylons), lightweight(juno, web.py) frameworks, and pay-for-what-you-eat frameworks (repoze)
Choose libraries based on what serves you best, combine them together using WSGI.
web2py is the new up-and-comer.
zope is the grey-bearded veteran that nobody uses anymore.
twisted is more of a networking framework but people sometimes use it for web apps.
Nobody uses zope? really? Plone, arguably the best Open Source CMS out there is built on Zope2 and continues to be used in ever increasing numbers..
Zope3 is not just a "framework". Its a mindset that allows people to think about solving problems in a robust way, which will remain useful for software's lifecycle.
Zope people realized the danger in building monolithic frameworks after the experiences of Zope2. When they started zope3, they kept the goal of reusability the number one design goal, even at the risk of appearing over-engineered at times. Today, there is no Zope3 and Zope3 is everywhere. Zope lives in Plone, Repoze, Grok and myriad of python libraries.
Lot of good ideas from zope like Zope.Interfaces and Zope component architecture are being outside the zope community.
Django is the Zope2 of 2009.
How many software stacks are still being supported and catered for after 10 years? Zope is a greybeard but saying that nobody uses it implies lack of actual knowledge of python frameworks and how they play together.
Repoze - http://repoze.org and Grok - http://grok.zope.org are some of the derivative frameworks that use best of zope libraries without going the whole hog.
Today, zope (specifically zope3) is arguably ahead of other popular frameworks in terms of its reusability, deployment stories, extensive testing.
Combine WSGI + Paste + Zope Component architecture + SQLAlchemy and a choice of other libraries to create a robust framework of your own.